Como a replicação de streaming do Postgres 9.2 lida com as mudanças de esquema e a configuração inicial da tabela?

8

Quero configurar um banco de dados de backup no servidor físico que fica logo abaixo do meu servidor de banco de dados físico primário. Estou usando o Postgres 9.2 e quero usar a replicação síncrona de streaming (por atomicidade), mas não sei como coisas como: A) a configuração da tabela inicial é transferida do servidor 1 para o servidor 2 (por exemplo, eu corro syncdbdo 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 realizadas do servidor 1 para o servidor 2 (por exemplo, eu executo uma migração do Django Sul, que envia ALTER TABLEconsultas e adiciona / remoção de índices etc.). Essas coisas são tratadas de forma transparente com a replicação de streaming ou há algo que preciso fazer para afetar essa alteração nos dois servidores?

orokusaki
fonte

Respostas:

14

Se você pretende usar a replicação de streaming incorporada do PostgreSQL, propaga a réplica com um backup básico - uma cópia no nível do sistema de arquivos do banco de dados original. Portanto, ele já possui 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 nos logs de gravação antecipada, para que os bancos de dados sejam mantidos fisicamente iguais. Como o DDL é, assim como o DML, registrado no WAL, o DDL e o DML são replicados de forma transparente.

Veja a documentação sobre HA e replicação no PostgreSQL para mais informações.

Craig Ringer
fonte