Vous appréciez mon travail ?
Je serais ravi de prendre un café !

Vous prenez du plaisir à lire mes articles ? Vous apprenez de nouvelles choses ? Je serais ravis que vous supportiez mon travail avec une petite participation

1 café Merci, vous financez ma dose quotidienne de théïne (oui, en vrai je ne bois pas de café).
5 cafés Génial, ça couvre mes frais de serveur mensuels.
10 cafés Fantastique, avec ça je peux investir dans du matériel et approfondir mes connaissances.
BazinGa's - Tips & tuto IT

PostgreSQL – Vade-mecum SQL – 7/8 – Administration serveur

Voici quelques éléments pour vous aider dans l’administration de vos bases de données. En effet, il est possible de connaitre bon nombre d’information sur la BDD avec quelques requêtes.

Niveau serveur

Paramètres

Utiliser SHOW :

-- Visualiser les paramètres du serveur :
SHOW mon_parametre;

-- Visualiser tous les paramètres :
SHOW ALL;

Utiliser la fonction current_setting('mon_parametre') :

-- Récupérer les principaux paramètres du serveur.
SELECT
	current_setting('SERVER_VERSION') as "SERVER_VERSION",
	current_setting('SERVER_ENCODING') as "SERVER_ENCODING",
	current_setting('LC_COLLATE') as "LC_COLLATE",
	current_setting('data_directory') as "data_directory",
	current_setting('config_file') as "config_file",
	current_setting('hba_file') as "hba_file",
	current_setting('listen_addresses') as "listen_addresses",
	current_setting('port') as "port",
	current_setting('max_connections') as "max_connections",
	current_setting('shared_buffers') as "shared_buffers",
	current_setting('work_mem') as "work_mem",
	current_setting('log_destination') as "log_destination",
	current_setting('log_directory') as "log_directory",
	current_setting('log_filename') as "log_filename",
	current_setting('log_rotation_age') as "log_rotation_age",
	current_setting('log_rotation_size') as "log_rotation_size",
	current_setting('log_min_messages') as "log_min_messages",
	current_setting('search_path') as "search_path",
	current_setting('TimeZone') as "TimeZone"
;

Pour en apprendre plus, lisez l’article consacré à la configuration de PostgreSQL :

Fonctions

Il existe un grand nombre de fonctions permettant de gérer ou de récupérer des informations sur la BDD.

Comme toute autre fonction, celles-ci s’utilisent dans un SELECT comme ceci :

-- Utilisation d'une fonction dans un SELECT
SELECT ma_fonction();

En voici une liste bien loin d’être exhaustive :

FonctionDescription
pg_reload_conf()Recharger la configuration du serveur
pg_column_size("ma_colonne")Poids d’une colonne en octet (Byte)
pg_database_size('nom_bdd')Poids d’une BDD en octet (Byte)
pg_total_relation_size('"mon_schema"."ma_table"')Poids totale d’une table (y compris index et toast) en octet (Byte)
pg_table_size('"mon_schema"."ma_table"')Poids d’une table (sans index, ni toast) en octet (Byte)
pg_size_pretty(valeur_numerique)Conversion des octets en valeur lisible (en B, kB, MB, GB…)
pg_relation_filepath('"mon_schema"."ma_table"')Emplacement des données d’une table sur le disque
pg_ls_dir('chemin/vers/repertoire') Lister le contenu d’un répertoire
pg_read_file('chemin/du/fichier.txt') Lire le contenu d’un fichier texte (renvoi du text)
pg_read_binary_file('chemin/du/fichier.xxx') Lire le contenu d’un fichier (renvoi du binaire)
pg_stat_file('chemin/du/fichier.xxx')Lire les informations d’un fichier

Niveau données

Les vues d’information système

Les tables d’information système PostgreSQL intègre de nombreuses tables et vues contenant des informations sur tous les objets de la base. En requêtant correctement ces données, vous pourrez obtenir de précieuses informations sur vos bases de données et vous faciliter la vie dans le cadre de migrations.

information_schema.columns 			-- Information sur les colonnes
information_schema.column_privileges 		-- Droits sur les colonnes
information_schema.tables 			-- Information sur les tables
information_schema.table_privileges 		-- Droits sur les tables
information_schema.views 			-- Information sur les vues
information_schema.sequences 			-- Information sur les séquences
information_schema.schemata 			-- Information sur les schema

Les tables systèmes

Les tables systèmes sont comme les vues d’information sauf qu’elles sont plus détaillées et plus rapide à interroger. Cependant, ceci elles sont plus difficilement lisibles car elles listes les objets par leurs oids et non par leurs noms.

pg_database 				-- Bases de données
pg_tablespace 				-- Tablespaces de la base
pg_tables				-- tables
pg_matviews				-- vues matérialisées
pg_views				-- vues
pg_indexes				-- index
pg_available_extensions			-- extensions disponibles
pg_file_settings			-- résumé du contenu des fichiers de configuration
pg_settings				-- configuration
pg_group				-- Groupe d'utilisateurs de la base de données
pg_roles				-- rôles des bases de données
pg_user					-- utilisateurs des bases de données
pg_shadow 				-- Utilisateurs
pg_authid 				-- Utilisateurs avec plein d'info
pg_stats				-- statistiques du planificateur
pg_stat_database 			-- Statistiques sur la base de données
pg_stat_all_tables 			-- Stat sur les tables
pg_class 				-- Tous les objets qui ressemblent de près ou de loin à une table

Plus de détails et monitoring

Pour plus de détails sur vos données et le contenu de votre BDD, je vous invite à lire cet article sur l’audit des données :

Cet article n’aborde pas la notion de monitoring via un outil externe. Vous pouvez consulter cet autre article à cet effet :


Vous avez maintenant toutes les informations sur votre cluster. Nous allons maintenant voir les utilitaires en ligne de commande que nous pouvons utiliser avec le cluster.

Sommaire général

Voici le sommaire général du cours :


Cet article vous a plu ?

N'hésitez pas à le partager, il interessera surement certains de vos contacts.

Les thèmes suivants contiennent des articles en lien avec celui-ci, allez faire un tour :

BDDPostgreSQLProgrammationSQL tuto

50%