Se hai un server Linux della famiglia RedHat (inclusi CentOS e Fedora), potresti invidiare il modo in cui le distribuzioni Debian/Ubuntu gestiscono la gestione dei cluster PostgreSQL.
Sebbene non sia facile installare diverse versioni di PostgreSQL sullo stesso server RedHat Linux utilizzando gli RPM, è molto più semplice installare più istanze di PostgreSQL (server) e, allo stesso tempo, sfruttare l'infrastruttura dei servizi.
Dopo aver impostato l'installazione di RPM, seguendo le istruzioni che trovi nel PostgreSQL YUM Repository, noterai che il processo creerà due file tra gli altri:
/etc/init.d/postgresql
:script di inizializzazione per il server PostgreSQL/etc/sysconfig/pgsql/postgresql
:configurazione di sistema per il servizio postgresql
Per impostazione predefinita, la directory dei dati di PostgreSQL (PGDATA
) punta al /var/lib/pgsql/data
directory. È possibile cambiarlo modificando il /etc/sysconfig/pgsql/postgresql
file.
Supponiamo di voler installare due server PostgreSQL sullo stesso RedHat Linux, aggiungendo un secondo server a quello predefinito che verrà utilizzato per scopi di sviluppo. Lo chiameremo postgresql-devel
. Verrà installato in /var/lib/pgsql/data-devel
directory e verrà eseguito sulla porta 5433.
Creiamo un collegamento simbolico al postgresql
principale init e chiamalo postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Quindi iniziamo a riempire il postgresql-devel
file di configurazione nel /etc/sysconfig/pgsql
directory. È importante notare che lo script init e il file di configurazione del sistema hanno lo stesso nome .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
Una volta fatto, puoi inizializzare la directory dei dati eseguendo:/etc/init.d/postgresql-devel initdb
o semplicemente service postgresql-devel initdb
.
Allo stesso modo puoi controllare l'avvio e l'arresto del servizio, eseguendo – rispettivamente:
service postgresql-devel start
service postgresql-devel stop
Puoi aggiungere/rimuovere lo script dall'avvio e dall'arresto del sistema utilizzando chkconfig
come faresti con altri servizi.
Il wiki di PostgreSQL contiene una pagina dettagliata su questo argomento e ti suggerisco di leggerlo insieme a questo. Tuttavia, questo semplice articolo mostra come integrare facilmente più istanze PostgreSQL sullo stesso server Linux e gestirle utilizzando l'infrastruttura dei servizi RedHat standard (grazie all'ottimo lavoro svolto da Devrim Gunduz).