Cluster PostgreSQL

posté en Jan 2022

#cluster

Notion générale

Pour PostgreSQL, la notion générale de Cluster (grappe) représente un groupe de bases de données qui ont leurs propres configurations. Un Cluster de base de données PostgreSQL est constitué d'un ensemble de processus (postmaster, logger, witer, etc.) gérant tous un ensemble de données partagé qui contient une ou plusieurs bases de données. Le cluster a des bases de données intégrées template0, template1 et postgres ; les autres bases de données sont créées par l'utilisateur.

Par exemple, vous pouvez avoir un Cluster qui utilise une version spécifique de postgreSQL contenant plusieurs bases de données. Toutes les bases de données utiliseront la même configuration offerte par le Cluster, par exemple la taille de la mémoire tampon, le nombre de connexions autorisées, la taille du pool de connexion, un numéro de port de connexion, etc. De même, vous pouvez avoir, sur le même serveur, un autre cluster qui utilise une version identique ou différente mais avec des configurations différentes (et surtout un port de connexion différent).

Le terme Cluster dans PostgreSQL est une bizarrerie historique, et est complètement différent du sens général de "compute cluster", qui se réfère normalement à des groupes d'ordinateurs travaillant ensemble pour obtenir de meilleures performances et/ou une plus grande disponibilité. Il est également sans rapport avec la commande CLUSTER de PostgreSQL, qui concerne l'organisation des tables.

Haute disponibilité

Si vous lisez ceci, il se peut que vous cherchiez des informations sur la haute disponibilité (High Availability) et/ou la réplication, auquel cas vous devriez lire la section sur la haute disponibilité du manuel PostgreSQL.