Il y a cluster et cluster
Dans cet article cluster désigne donc simplement un ensemble de bases de données PostgreSQL partageant certaines caractéristiques : WAL (write ahead log, fichiers de journalisation), port découte et paramètres fixés au niveau cluster notamment. Debian propose une série de scripts permettant de faciliter la gestion dun cluster PostgreSQL voire permettant de déployer plusieurs clusters, éventuellement de versions différentes, sur un même serveur.
Avec la généralisation des solutions de virtualisation matérielle type Xen ou applicative type Docker cette caractéristique perd un peu de son intérêt. Il nest pas nécessairement intéressant de déployer plusieurs clusters en production avec cette méthode car chaque cluster pensera être "seul" et pourra saccaparer toutes les ressources du serveur. Cependant, pour des utilisations hors production (développement, recette, formation etc.), cela peut être une solution simple et intéressante.
La création et le paramétrage du cluster sont de la responsabilité du DBA en fonction de la charge, de la nature des données etc. Il sera nécessaire de paramétrer larchivage des WAL en continu sur un environnement transactionnel alors que cela peut être inutile sur un environnement purement décisionnel par exemple.
Cluster par défaut
Si vous avez réalisé latelier Installer PostgreSQL 9.6.x sur Debian 9.x "Stretch" vous aurez constaté que dès linstallation du logiciel PostgreSQL un premier cluster appelé "main" est créé avec des options par défaut :
Si vous aviez précédemment configuré la locale par défaut vous avez un cluster parfaitement utilisable. Quelles pourraient être les raisons de vouloir faire autre chose ?
Créer un cluster
Je vous propose de détruire le cluster PostgreSQL par défaut puis de créer un cluster PostgreSQL "apptra001" avec le checksum des pages activé et lorganisation de fichiers suivante :
En pratique :