Se você tem um servidor Linux da família RedHat (incluindo CentOS e Fedora), você pode invejar a forma como as distribuições Debian/Ubuntu lidam com o gerenciamento de clusters PostgreSQL.
Embora não seja fácil instalar diferentes versões do PostgreSQL no mesmo servidor RedHat Linux usando RPMs, é muito mais simples instalar várias instâncias do PostgreSQL (servidores) e, ao mesmo tempo, aproveitar a infraestrutura de serviços.
Depois de configurar a instalação do RPM, seguindo as instruções que você encontra no PostgreSQL YUM Repository, você notará que o processo criará dois arquivos entre os outros:
/etc/init.d/postgresql
:script de inicialização para o servidor PostgreSQL/etc/sysconfig/pgsql/postgresql
:configuração do sistema para o serviço postgresql
Por padrão, o diretório de dados do PostgreSQL (
PGDATA
) aponta para o /var/lib/pgsql/data
diretório. É possível alterá-lo modificando o /etc/sysconfig/pgsql/postgresql
Arquivo. Vamos supor que queremos instalar dois servidores PostgreSQL no mesmo RedHat Linux, adicionando um segundo servidor ao padrão que será usado para fins de desenvolvimento. Chamaremos isso de
postgresql-devel
. Ele será instalado no /var/lib/pgsql/data-devel
diretório e será executado na porta 5433. Criamos um link simbólico para o
postgresql
principal script de inicialização e chame-o de postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Então começamos a preencher o
postgresql-devel
arquivo de configuração no /etc/sysconfig/pgsql
diretório. É importante observar que o script de inicialização e o arquivo de configuração do sistema têm o mesmo nome .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
Feito isso, você pode inicializar o diretório de dados executando:
/etc/init.d/postgresql-devel initdb
ou simplesmente service postgresql-devel initdb
. Da mesma forma, você pode controlar a inicialização e o desligamento do serviço, executando – respectivamente:
service postgresql-devel start
service postgresql-devel stop
Você pode adicionar/remover o script da inicialização e do desligamento do sistema usando
chkconfig
da mesma forma que faria com outros serviços. A wiki do PostgreSQL contém uma página detalhada sobre este tópico, e sugiro que você a leia junto com esta. No entanto, este artigo simples mostra como integrar facilmente várias instâncias do PostgreSQL no mesmo servidor Linux e gerenciá-las usando a infraestrutura de serviços padrão da RedHat (graças ao ótimo trabalho feito por Devrim Gunduz).