Si vous avez un serveur Linux de la famille RedHat (y compris CentOS et Fedora), vous pourriez envier la façon dont les distributions Debian/Ubuntu gèrent la gestion des clusters PostgreSQL.
Bien qu'il ne soit pas facile d'installer différentes versions de PostgreSQL sur le même serveur RedHat Linux à l'aide de RPM, il est beaucoup plus simple d'installer plusieurs instances de PostgreSQL (serveurs) et, en même temps, de profiter de l'infrastructure des services.
Une fois que vous avez configuré l'installation du RPM, en suivant les instructions que vous trouverez dans le référentiel PostgreSQL YUM, vous remarquerez que le processus créera deux fichiers parmi d'autres :
/etc/init.d/postgresql
:script d'initialisation du serveur PostgreSQL/etc/sysconfig/pgsql/postgresql
:configuration système pour le service postgresql
Par défaut, le répertoire de données PostgreSQL (PGDATA
) pointe vers /var/lib/pgsql/data
annuaire. Il est possible de le changer en modifiant le /etc/sysconfig/pgsql/postgresql
fichier.
Supposons que nous voulions installer deux serveurs PostgreSQL sur le même RedHat Linux, en ajoutant un deuxième serveur à celui par défaut qui sera utilisé à des fins de développement. Nous l'appellerons postgresql-devel
. Il sera installé dans le /var/lib/pgsql/data-devel
répertoire et s'exécutera sur le port 5433.
Nous créons un lien symbolique vers le principal postgresql
init script et appelez-le postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Ensuite, nous commençons à remplir le postgresql-devel
fichier de configuration dans /etc/sysconfig/pgsql
annuaire. Il est important de noter que le script d'initialisation et le fichier de configuration système portent le même nom .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
Une fois cela fait, vous pouvez initialiser le répertoire de données en exécutant :/etc/init.d/postgresql-devel initdb
ou simplement service postgresql-devel initdb
.
De même, vous pouvez contrôler le démarrage et l'arrêt du service, en exécutant – respectivement :
service postgresql-devel start
service postgresql-devel stop
Vous pouvez ajouter/supprimer le script au démarrage et à l'arrêt du système en utilisant chkconfig
de la même manière que vous le feriez avec d'autres services.
Le wiki PostgreSQL contient une page détaillée sur ce sujet, et je vous suggère de la lire avec celle-ci. Cependant, cet article simple vous montre comment intégrer facilement plusieurs instances PostgreSQL sur le même serveur Linux et les gérer à l'aide de l'infrastructure de services RedHat standard (grâce à l'excellent travail effectué par Devrim Gunduz).