A solução que implantamos faz o seguinte:
As minhas informações são gravadas no Banco 1. Todas as minhas aplicações estão apontando para o Banco 1. A estratégia adotada foi replicar o Banco 1 no site 1 para o Banco 2 no site 2. Tanto o banco como o ambiente do Site 2 são mais atualizados que do site 1.
Assim que as aplicações forem atualizados pode-se desligar o site 1 ou inverter a replicação.
Para replicação utilizei o Slony. A escolha do Slony aconteceu antes de entender todas as possibilidades de replicação que o Postgresql oferece.
Para instalação do Slony 2.2.4 em ambiente linux, segui a receita:
1) Baixar o Slony do site http://slony.info/downloads/, quando escrevi este post, a versão mais atualizada disponível era: slony1-2.2.4.tar.bz2.
2) Na pasta onde baixei o pacote, executei o comando:
tar -vjxf slony1-2.2.4.tar.bz2
faz com que o pacote seja descompactado e cria uma pasta denominda: slony1-2.2.4
3) É necessário ter instalado um compilador C em sua máquina / servidor. No lugar se utilizar o configure.sh que vem na pasta slony1-2.2.4 utilize o configure.sh seguinte:
export PGMAIN=/DBA/postgresql/9.4.1
./configure \
--prefix=$PGMAIN \
--bindir=$PGMAIN/bin \
--datadir=$PGMAIN/share \
--libdir=$PGMAIN/lib \
--with-pgconfigdir=$PGMAIN/bin \
--with-pgbindir=$PGMAIN/bin \
--with-pgincludedir=$PGMAIN/include \
--with-pglibdir=$PGMAIN/lib \
--with-pgsharedir=$PGMAIN/share
onde na variável PGMAIN deve ser inserida a pasta onde esta sua instalação do POSTGRESQL.
Execute do arquivo configure.sh.
Caso você receba a mensagem:
checking PostgreSQL for thread-safety... configure: error: PQisthreadsafe test failed - PostgreSQL needs to be compiled with --enable-thread-safety
Procure em sua máquina, a pasta onde esta instalado o arquivo: libpq-fe.h
find / -name libpq-fe.h
/usr/include/postgresql/libpq-fe.h
Coloque o resultado no arquivo configure.sh na variável with-pgincludedir
export PGMAIN=/DBA/postgresql/9.4.1
./configure \
--prefix=$PGMAIN \
--bindir=$PGMAIN/bin \
--datadir=$PGMAIN/share \
--libdir=$PGMAIN/lib \
--with-pgconfigdir=$PGMAIN/bin \
--with-pgbindir=$PGMAIN/bin \
--with-pgincludedir=/usr/include/postgresql \
--with-pglibdir=$PGMAIN/lib \
--with-pgsharedir=$PGMAIN/share
Execute novamente o arquivo configure.sh
4) Em seguida execute os comandos:
make all
make install
5) Esta instalado o Slony em uma máquina.É necessário repetir procedimento para cada servidor de banco de dados.
6) Para entender como funciona o Slony utilizei o tutorial que encontrei no site:
http://slony.info/documentation/2.2/tutorial.html
Infelizmente tem alguns erros neste tutorial que podem ser resolvidos lendo os arquivos de LOG gerados.