Desejo configurar um banco de dados de backup no servidor físico que fica logo abaixo do meu servidor de banco de dados físico principal. Estou usando o Postgres 9.2 e quero usar a replicação de streaming síncrona (para atomicidade), mas desconheço completamente como coisas como A) a configuração inicial da tabela é transferida do servidor 1 para o servidor 2 (por exemplo, eu corro syncdb
do meu aplicativo Django, que cria uma série de tabelas no servidor 1) e B) como as alterações contínuas do esquema são transportadas do servidor 1 para o servidor 2 (por exemplo, eu executo uma migração do Django South, que envia ALTER TABLE
consultas, além de adicionar/ remover índices, etc.). Essas coisas são tratadas de forma transparente com a replicação de streaming ou há algo que devo fazer para afetar essa alteração nos dois servidores?
Se você pretende usar a replicação de fluxo integrada do PostgreSQL, você propaga a réplica com um backup básico - uma cópia no nível do sistema de arquivos do banco de dados original. Então ele já tem todas as tabelas e dados do mestre.
pg_basebackup
geralmente é usado para isso.A replicação de streaming lê as alterações no nível do bloco dos logs write-ahead, portanto, os bancos de dados são mantidos fisicamente iguais. Como o DDL é, assim como o DML, gravado no WAL, o DDL e o DML são ambos replicados de forma transparente.
Consulte a documentação sobre HA e replicação no PostgreSQL para obter mais informações.