De nombreuses bases de données sur un serveur Postgre et impossible de savoir laquelle prend trop d’espace ? Quel volume occupe une base bien précise ? Est-ce que mon traitement a fait grossir la base ? Pour toutes ces questions et bien d’autres, ce tutoriel indique comment lister les bases de données et leur taille sur un serveur PostgreSQL. Une information intéressante et essentielle pour les administrateurs, système et DBA. On utilise une commande psql, l’interface en mode texte pour PostgreSQL, et un simple raccourci de commande agrémenté d’une variable pour afficher des informations supplémentaires à la simple liste de BDD.

Au contraire de Microsoft SQL Server qui propose un fichier MDF par base de données (ainsi qu’un LDF pour les logs), PostgreSQL met en place une multitude de fichiers dans un répertoire dédié que l’on retrouve dans \data\base.

Ce guide fonctionne avec toutes les versions récentes de PGSQL : 9, 10, 11, 12.

 

Afficher la taille des bases d’un serveur PostgreSQL

1. Ouvrir un Invite de commandes (cmd).

2. Aller dans le dossier « bin » de PGSQL, par exemple :

cd D:\pgsql11\bin

3. Se connecter au serveur Postgre en PSQL :

psql -U username

Si le serveur PG n’est pas sur le port par défaut 5432 ou qu’il y a plusieurs versions du SGBD sur la machine, préciser le port dans la commande : psql -U username -p 5433

4. Indiquer le mot de passe de l’utilisateur.

5. Taper la commande « \l+ » (anti slash, L minuscule – comme list – et symbole plus). Patienter quelques instants pour obtenir un résultat de ce type :

taille bdd postgresql pgsql psql

La capture ci-dessus montre la différence entre les commandes raccourcies « \l » et « \l+ » et les colonnes qui se rajoutent à l’écran : Taille, Tablespace, Description.

Il est ainsi très facile d’identifier les BDD les plus volumineuses sur le serveur PostgreSQL. On voit aussi dans quel tablespace sont installées les bases de données, utile que si on les utilise pour cloisonner les bases.