Got GUC?

Les paramètres de configuration de PostgreSQL sont appelés GUC ce qui signifie Grand Unified Configuration, c’est le nom de la partie du code qui gère les paramètres de configuration. En gros, ce sont tous les paramètres du fichier postgresql.conf. Ce qui est moins connu et utilisé, c’est la possibilité de configurer ces paramètres à différents niveaux : Fichier postgresql.conf Ligne de commande du postmaster, le processus principal du serveur Base de données Rôle Rôle sur une base de données Session Transaction La précédence des valeurs va en descendant dans la liste, par exemple la valeur d’un paramètre au niveau d’un rôle écrase celle positionnée au niveau de la base de donnée ou la ligne de commande....

2012-01-25 · 3 min

Quand PostgreSQL n'a plus d'espace disque à manger

Voilà donc une question intéressante, comment se comporte PostgreSQL face à un système de fichier plein ? Un peu d’expérimentation est nécessaire pour se rassurer… On crée deux systèmes de fichiers de faible taille pour les tests. Le premier stockera PGDATA, ainsi qu’une base de données nommée db_data. Le second sera le tablesapce ts1, dans lequel oncréera une base de données db_ts1. L’objectif est de montrer que seules les transactions modifiant des objets stockés sur des systèmes de fichier plein sont affectées, c’est pourquoi on a besoin de plusieurs tablespaces....

2011-10-14 · 4 min

Could not open relation with oid N

On peut parfois trouver cet étrange message d’erreur dans les traces de PostgreSQL (N étant un nombre) ou lors de l’exécution d’une requête : ERROR: could not open relation with OID N Si on recherche ce message dans les mailing-lists du projet, on peut facilement conclure que la base de données est corrompue, qu’il y a des problèmes matériels et que la sécurité des données est en péril. Et bien, ce n’est pas forcément le cas : obtenir ce message peut être tout à fait normal....

2011-08-04 · 4 min

Retrouver un trigger à partir du nom de la fonction associée

Ici encore, tout est dans le catalogue système de PostgreSQL, il suffit de regarder dans la table pg_trigger. ...

2011-04-07 · 1 min

pg_class.reltuples n'est qu'une approximation du nombre de lignes

Dans le catalogue de PostgreSQL, qui donne plein d’information sur le cluster et la base de données, la table pg_class regroupe les informations sur les tables, les séquences, les index, tout ce qui contient des colonnes, appelé relation. L’un des champs disponibles est reltuples, il contient le nombre approximatif de lignes dans une relation. C’est approximatif, ainsi ce n’est pas un donnée sure… La preuve par l’exemple. ...

2011-03-14 · 2 min

Voir tous les champs d'une table

Avec PostgreSQL, on peut utiliser la requête suivante pour obtenir la taille de chacune des bases de données d’un cluster : SELECTdatnameASbase,pg_size_pretty(pg_database_size(oid))AStailleFROMpg_database;...

2011-02-25 · 2 min

Recréer une séquence

On peut faire ça dans 2 cas : On a fait n’importe quoi, et la séquence a disparu :-( On veut transformer une colonne en « SERIAL » ...

2011-02-22 · 1 min