Soporte de failover para Oracle GoldenGate con PostgreSQL 17 y superior
Obtenga información sobre la configuración del failover para Oracle GoldenGate con PostgreSQL 17 y versiones posteriores.
PostgreSQL 17 ha introducido el soporte para la sincronización automática de ranuras de replicación lógicas entre los servidores principal y en espera. Cuando se utiliza con Oracle GoldenGate, esta capacidad permite un failover sin problemas de los procesos de extracción sin necesidad de volver a crear manualmente los espacios de replicación.
Esta función garantiza la replicación continua de datos con una interrupción mínima durante los eventos de failover.
Requisitos para activar el soporte de failover para Oracle GoldenGate para PostgreSQL 17 y superior
Antes de activar la compatibilidad con failover, asegúrese de lo siguiente:
-
Se despliega PostgreSQL versión 17 o posterior.
-
Ya se ha configurado una configuración principal y en espera (réplica).
-
Oracle GoldenGate está instalado y configurado.
-
Los permisos de base de datos necesarios están disponibles.
Configuración del soporte de failover
Configure el soporte de failover realizando las siguientes tareas en los servidores principal y en espera PostgreSQL y, a continuación, en el lado de extracción de Oracle GoldenGate.
-
Configure los servidores principal y en espera PostgreSQL.
En el servidor principal: actualice los parámetros de configuración PostgreSQL:
wal_level = logical max_replication_slots = *sufficient_value* sync_replication_slots = on synchronized_standby_slots = '*standby_slot_name*'En el servidor en espera
Actualice los parámetros para la configuración:
hot_standby_feedback = on primary_slot_name = '*primary_physical_slot*' -
Después de actualizar la configuración, reinicie PostgreSQL en los servidores principal y en espera.
-
Active el soporte de ranuras de failover al registrar el proceso de extracción.
Uso de la interfaz web de Oracle GoldenGate
Al crear el Extract para PostgreSQL, active el conmutador Ranuras de replicación de failover:

Uso de AdminClient
REGISTER EXTRACT *extract_name* FAILOVERSLOT;Uso de la API de REST
POST /services/v2/extracts/AT { "credentials": { "alias": "fail1" }, "registration": "default", "failoverSlot": true } -
Verifique la configuración en los servidores principal y en espera PostgreSQL:
En el servidor principal: ejecute la siguiente consulta:
SELECT slot_name, slot_type, failover FROM pg_replication_slots;La salida debe mostrar:
-
El tipo de espacio es
logical -
failoverse define entrue
En el servidor en espera: ejecute la siguiente consulta:
SELECT slot_name, restart_lsn FROM pg_replication_slots;La salida debe mostrar:
-
Existe la misma ranura en la base de datos en espera
-
Los valores de LSN están progresando
-
-
Realice el failover realizando los siguientes pasos:
-
Promocionar el servidor en espera a principal mediante el mecanismo de alta disponibilidad configurado.
-
Actualice la configuración de Extract para conectarse a la nueva base de datos primaria.
-
Inicie o reanude el proceso de extracción.
La replicación continúa desde la última posición procesada sin necesidad de reinicialización.
-
-
Supervise el estado de la ranura de replicación:
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;Verifique lo siguiente:
-
El espacio está activo
-
El reinicio de LSN está avanzando
-
Sin acumulación excesiva de WAL
-
-
La eliminación de ranuras de replicación no utilizadas ayuda a evitar una retención excesiva de
WALy el uso excesivo del disco.SELECT pg_drop_replication_slot('*slot_name*');
Mejores prácticas para la configuración de soporte de failover
Para configurar el soporte de failover con Oracle GoldenGate Extract para PostgreSQL, tenga en cuenta las siguientes mejores prácticas:
-
Activar ranuras de failover durante la creación de Extract
-
Supervise regularmente el estado de la ranura de replicación
-
Realizar pruebas periódicas de failover
-
Garantizar el espacio en disco adecuado para los archivos WAL
Limitaciones
-
Limitación de la base de datos de Yugabyte: la base de datos de Yugabyte no soporta las ranuras de failover, ya que todavía utiliza la versión PostgreSQL anterior, que no soporta la ranura de failover.
-
Comando Limitación de Oracle GoldenGate con MIGRATE: el espacio de failover no funciona con
Migrateporque el espacio recién creado no es un espacio de failover con el valorfailover = true.
Directrices específicas de la nube
-
Amazon RDS para PostgreSQL: defina el siguiente parámetro:
rds.logical_slot_sync_dbname = '*database_name*'Para obtener más información, consulte: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization.html
-
Azure Database para PostgreSQL: se realizan las siguientes acciones:
-
El failover se gestiona automáticamente
-
Asegúrese de que la replicación lógica esté activada
Para obtener más información, consulte https://learn.microsoft.com/en-us/azure/postgresql/high-availability/concepts-high-availability#failover-support
-
-
PostgreSQL Detalles de descodificación lógica: para obtener más información sobre la descodificación lógica PostgreSQL, consulte https://www.postgresql.org/docs/17/logicaldecoding-explanation.html.