¿Cómo maneja la replicación de transmisión de Postgres 9.2 los cambios de esquema y la configuración inicial de la tabla?

8

Quiero configurar una base de datos de respaldo en el servidor físico que se encuentra justo debajo de mi servidor de base de datos física principal. Estoy usando Postgres 9.2, y quiero usar la replicación de transmisión sincrónica (por atomicidad), pero no estoy completamente al tanto de cómo, A) la configuración inicial de la tabla se transfiere del servidor 1 al servidor 2 (por ejemplo, ejecuto syncdbdesde mi aplicación Django, que crea una serie de tablas en el servidor 1), y B) cómo se llevan a cabo los cambios continuos de esquema del servidor 1 al servidor 2 (por ejemplo, ejecuto una migración Django South, que envía ALTER TABLEconsultas, además de agregar / eliminar índices, etc.). ¿Se manejan estas cosas de forma transparente con la replicación de transmisión o hay algo que tengo que hacer para afectar este cambio en ambos servidores?

orokusaki
fuente

Respuestas:

14

Si tiene la intención de usar la replicación de transmisión incorporada de PostgreSQL, entonces inicia la réplica con una copia de seguridad base: una copia a nivel del sistema de archivos de la base de datos original. Entonces ya tiene todas las tablas y datos del maestro. pg_basebackupse usa generalmente para esto.

La replicación de transmisión lee los cambios a nivel de bloque de los registros de escritura anticipada, por lo que las bases de datos se mantienen físicamente iguales. Dado que DDL es, al igual que DML, grabado en WAL, DDL y DML se replican de forma transparente.

Consulte la documentación sobre HA y la replicación en PostgreSQL para obtener más información.

Craig Ringer
fuente