PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come installare più server PostgreSQL su RedHat Linux

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).