Supporto del failover per Oracle GoldenGate con PostgreSQL 17 e versioni successive
Informazioni sulla configurazione del failover per Oracle GoldenGate con PostgreSQL 17 e versioni successive.
PostgreSQL 17 ha introdotto il supporto per la sincronizzazione automatica degli slot di replica logica tra i server primari e in standby. Se utilizzata con Oracle GoldenGate, questa funzionalità consente il failover dei processi Extract senza richiedere la ricreazione manuale degli slot di replica.
Questa funzione garantisce la replica continua dei dati con interruzioni minime durante gli eventi di failover.
Prerequisiti per l'abilitazione del supporto di failover per Oracle GoldenGate per PostgreSQL 17 e versioni successive
Prima di abilitare il supporto per il failover, accertarsi che:
-
PostgreSQL versione 17 o successiva è distribuito.
-
Una configurazione primaria e di standby (replica) è già impostata.
-
Oracle GoldenGate è installato e configurato.
-
Sono disponibili le autorizzazioni necessarie per il database.
Configurare il supporto di failover
Configurare il supporto del failover eseguendo i task riportati di seguito sui server primario e in standby PostgreSQL e quindi sul lato Extract di Oracle GoldenGate.
-
Configurare i server primari e in standby PostgreSQL.
Sul server primario: aggiornare i parametri di configurazione PostgreSQL.
wal_level = logical max_replication_slots = *sufficient_value* sync_replication_slots = on synchronized_standby_slots = '*standby_slot_name*'Sul server in standby
Aggiornare i parametri della configurazione:
hot_standby_feedback = on primary_slot_name = '*primary_physical_slot*' -
Dopo aver aggiornato la configurazione, riavviare PostgreSQL sui server primario e in standby.
-
Abilita il supporto dello slot di failover durante la registrazione del processo Extract.
Uso dell'interfaccia Web Oracle GoldenGate
Durante la creazione di Extract for PostgreSQL, abilitare lo switch di attivazione/disattivazione degli slot di replica failover:

Utilizzo di AdminClient
REGISTER EXTRACT *extract_name* FAILOVERSLOT;Utilizzo dell'API REST
POST /services/v2/extracts/AT { "credentials": { "alias": "fail1" }, "registration": "default", "failoverSlot": true } -
Verificare la configurazione sui server primario e in standby PostgreSQL:
Sul server primario: eseguire la query seguente:
SELECT slot_name, slot_type, failover FROM pg_replication_slots;L'output dovrebbe mostrare:
-
Il tipo di slot è
logical -
failoverè impostato sutrue
Sul server in standby: eseguire la query seguente:
SELECT slot_name, restart_lsn FROM pg_replication_slots;L'output dovrebbe mostrare:
-
Lo stesso slot esiste in standby
-
Valori LSN in corso
-
-
Eseguire il failover effettuando le operazioni riportate di seguito.
-
Promuovi il server in standby a primario utilizzando il meccanismo High Availability configurato.
-
Aggiornare la configurazione Extract per connettersi al nuovo database primario.
-
Avviare o riprendere il processo di estrazione.
La replica continua dall'ultima posizione elaborata senza richiedere la reinizializzazione.
-
-
Monitorare lo stato dello slot di replica:
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;Verificare quanto riportato di seguito.
-
Slot attivo
-
Riavvia LSN in corso
-
Nessun accumulo di WAL eccessivo
-
-
La rimozione degli slot di replica inutilizzati impedisce un'eccessiva conservazione
WALe un uso eccessivo del disco.SELECT pg_drop_replication_slot('*slot_name*');
Procedure ottimali per la configurazione del supporto del failover
Per configurare il supporto del failover con Oracle GoldenGate Extract for PostgreSQL, prendere in considerazione le procedure ottimali riportate di seguito.
-
Abilita slot di failover durante la creazione dell'estrazione
-
Monitorare regolarmente lo stato degli slot di replica
-
Esegui test di failover periodico
-
Garantire uno spazio su disco adeguato per i file WAL
Limitazioni
-
Limitazione del database in GB: gli slot di failover non sono supportati dal database in GB in quanto utilizzano ancora la versione precedente di PostgreSQL, che non supporta lo slot di failover.
-
Comando Oracle GoldenGate Limitation with MIGRATE: lo slot di failover non funziona con
Migrateperché il nuovo slot creato non è uno slot di failover con l'impostazionefailover = true.
Linee guida specifiche per il cloud
-
Amazon RDS per PostgreSQL: impostare il parametro seguente:
rds.logical_slot_sync_dbname = '*database_name*'Per informazioni dettagliate, vedere: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization.html
-
Azure Database for PostgreSQL: vengono eseguite le azioni riportate di seguito.
-
Il failover viene gestito automaticamente
-
Assicurarsi che la replica logica sia abilitata
Per ulteriori informazioni, vedere https://learn.microsoft.com/en-us/azure/postgresql/high-availability/concepts-high-availability#failover-support
-
-
PostgreSQL Dettagli decodifica logica: per i dettagli sulla decodifica logica PostgreSQL, vedere https://www.postgresql.org/docs/17/logicaldecoding-explanation.html.