Replicación de Datos

Replicación de Datos

Ofrecemos distintos niveles de replicación de datos:

Replicación Asincrona

Replicación Sincrona

Streaming Replication

Point In Time Recovery

Tantos tipos de replicación, ¡tan poco tiempo! ¿Qué tipo de replicación de PostgreSQL debe usar?

Quiero un servidor en espera para hacerse cargo si falla el principal. Use la replicación de transmisión.

Quiero hacer consultas de solo lectura para balanceo de carga. Utilice la replicación de transmisión, pero tenga en cuenta que la réplica que recibe las consultas puede quedar rezagada.

Quiero replicar a través de una conexión de red lenta o poco confiable. Use WAL Shipping. Quiero actualizar desde antes de 9.4 a 9.4 o superior. Usa Slony, Londiste o Bucardo.

Quiero actualizar desde 9.4 o posterior. Use pglogical.

Quiero consolidar varios servidores en un único almacén de datos o solo replicar algunas tablas / bases de datos / etc. Si está en 9.3 o anterior, use Slony, Bucardo o Londiste. (Pero probablemente debería actualizar primero). Si está en 9.4, 9.5 o 9.6, use pglogical. Si tiene 10, use la replicación lógica incorporada. Solo quiero replicar algunas columnas en una tabla Si está en 9.3 o anterior, use Slony. Si está en 9.4 o posterior, use pglogical.

Quiero replicar tablas que no tienen una clave primaria (u otra única). Actualice a la versión 10 y use la replicación lógica incorporada. ¿Debería usar Slony, Bucardo o Londiste? Slony tendrá un mejor rendimiento general que Bucardo o Londiste. Slony requiere la instalación de extensiones de nivel C. Bucardo y Londiste son (algo) más fáciles de instalar y administrar. Bucardo y Londiste están en Perl y Python, respectivamente, si realmente le importa mucho qué idioma utiliza la herramienta. Necesito múltiples maestros, donde dos servidores pueden escribir y replicarse entre sí. Usa Bucardo.

Quiero que un servidor Amazon PostgreSQL RDS sea el objetivo para la replicación lógica. Utilice Bucardo o Londiste.

Quiero replicar desde RDS a una base de datos no RDS. No hay forma actual de hacer esto.

Quiero que una base de datos RDS sea la fuente para la replicación lógica. No hay forma actual de hacer esto. Espere, la documentación de RDS dice que “admite la replicación lógica”. Solo admite el complemento de prueba que PostgreSQL proporciona como parte de contrib / modules, que en realidad no replica. Deseo utilizar el servicio de migración de datos de Amazon para la replicación PostgreSQL-PostgreSQL. Probablemente no. No soporta tipos importantes de PostgreSQL, como TIMESTAMP WITH TIME ZONE.

Quiero usar transmisión y replicación lógica al mismo tiempo. Esto es posible, pero hay complejidades más allá del alcance de esta hoja de trucos sobre cómo fracasar exitosamente si su primaria falla.

Esto es terriblemente complicado. ¡Realmente no! La regla básica es usar la replicación de transmisión para una alta disponibilidad y la replicación lógica para el almacenamiento de datos u otros problemas de distribución de datos. El resto son todos los detalles!