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 :
Fonction | Description |
---|---|
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