Suporte a Failover para o Oracle GoldenGate com PostgreSQL 17 e versões posteriores
Saiba mais sobre como configurar o failover para o Oracle GoldenGate com o PostgreSQL 17 e versões mais recentes.
O PostgreSQL 17 introduziu suporte para sincronização automática de slots de replicação lógica entre os servidores principal e stand-by. Quando usado com o Oracle GoldenGate, esse recurso permite o failover contínuo dos processos de Extract sem exigir a recriação manual de slots de replicação.
Esse recurso garante a replicação contínua de dados com interrupção mínima durante eventos de failover.
Pré-requisitos para Ativar o Suporte a Failover para o Oracle GoldenGate no PostgreSQL 17 e versões posteriores
Antes de ativar o suporte a failover, verifique o seguinte:
-
O PostgreSQL versão 17 ou mais recente foi implantado.
-
Uma configuração principal e stand-by (réplica) já está configurada.
-
O Oracle GoldenGate está instalado e configurado.
-
Permissões necessárias do banco de dados estão disponíveis.
Configurar o Suporte a Failover
Configure o suporte a failover executando as seguintes tarefas nos servidores principal e stand-by PostgreSQL e, em seguida, no Oracle GoldenGate Extract.
-
Configure os servidores principal e stand-by PostgreSQL.
No Servidor Principal: Atualize os parâmetros de configuração PostgreSQL:
wal_level = logical max_replication_slots = *sufficient_value* sync_replication_slots = on synchronized_standby_slots = '*standby_slot_name*'No Servidor Stand-by
Atualize os parâmetros da configuração:
hot_standby_feedback = on primary_slot_name = '*primary_physical_slot*' -
Após atualizar a configuração, reinicie o PostgreSQL nos servidores principal e stand-by.
-
Ativar suporte a slot de failover ao registrar o processo Extract.
Usando a interface Web do Oracle GoldenGate
Ao criar o Extract para PostgreSQL, ative a chave de alternância Slots de Replicação de Failover:

Usando AdminClient
REGISTER EXTRACT *extract_name* FAILOVERSLOT;Usando a API REST
POST /services/v2/extracts/AT { "credentials": { "alias": "fail1" }, "registration": "default", "failoverSlot": true } -
Verifique a configuração nos servidores principal e stand-by PostgreSQL:
No Servidor Principal: Execute a seguinte consulta:
SELECT slot_name, slot_type, failover FROM pg_replication_slots;A saída deve mostrar:
-
O tipo de slot é
logical -
failoveré definido comotrue
No Servidor Stand-by: Execute a seguinte consulta:
SELECT slot_name, restart_lsn FROM pg_replication_slots;A saída deve mostrar:
-
O mesmo slot existe no stand-by
-
Os valores LSN estão em andamento
-
-
Execute o failover executando as seguintes etapas:
-
Promova o servidor stand-by para o principal usando o mecanismo de alta disponibilidade configurado.
-
Atualize a configuração do Extract para estabelecer conexão com o novo banco de dados principal.
-
Iniciar ou retomar o processo Extract.
A replicação continua a partir da última posição processada sem exigir reinicialização.
-
-
Monitore o status do slot de replicação:
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;Verifique o seguinte:
-
O slot está ativo
-
Reiniciar LSN está avançando
-
Sem acumulação excessiva de WAL
-
-
A remoção de slots de replicação não utilizados ajuda a evitar a retenção excessiva de
WALe o uso excessivo do disco.SELECT pg_drop_replication_slot('*slot_name*');
Melhores Práticas para Configuração de Suporte de Failover
Para configurar o suporte a failover com o Oracle GoldenGate Extract para PostgreSQL, considere as seguintes melhores práticas:
-
Ativar slots de failover durante a criação do Extract
-
Monitorar regularmente o status do slot de replicação
-
Executar testes de failover periódicos
-
Garantir espaço em disco adequado para arquivos WAL
Limitações
-
Limitação do Banco de Dados de Yugabyte: Os slots de failover não são suportados pelo Banco de Dados de Yugabyte, pois ele ainda usa a versão mais antiga do PostgreSQL, que não suporta slot de failover.
-
Comando Oracle GoldenGate Limitation with MIGRATE: O slot de failover não funciona com
Migrateporque o slot recém-criado não é um slot de failover com a definiçãofailover = true.
Diretrizes Específicas da Nuvem
-
Amazon RDS para PostgreSQL: Defina o seguinte parâmetro:
rds.logical_slot_sync_dbname = '*database_name*'Para obter detalhes, consulte: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization.html
-
Banco de Dados do Azure para PostgreSQL: As seguintes ações são executadas:
-
O failover é gerenciado automaticamente
-
Garantir que a replicação lógica esteja ativada
Para saber mais, consulte https://learn.microsoft.com/en-us/azure/postgresql/high-availability/concepts-high-availability#failover-support
-
-
PostgreSQL Logical Decoding Details: Para obter detalhes sobre a decodificação lógica PostgreSQL, consulte https://www.postgresql.org/docs/17/logicaldecoding-explanation.html.