Creazione di un'istanza precisa per PostgreSQL mediante estrazione caricamento iniziale
La sincronizzazione dei dati da un database PostgreSQL di origine a una destinazione Oracle GoldenGate può essere eseguita con il metodo facoltativo di utilizzare una creazione di istanze precisa. Questo metodo è stato introdotto con Oracle GoldenGate 21c (21.8.0).
La creazione di un'istanza precisa ha il vantaggio di non richiedere alcuna gestione delle collisioni nel Replicat di destinazione. Ciò è importante per le destinazioni che non supportano la gestione delle collisioni, ad esempio i file flat. Questo metodo utilizza uno snapshot del database per sincronizzare l'output dell'estrazione del caricamento iniziale con la posizione iniziale dell'estrazione di Change Data Capture. Questo snapshot è gestito dall'estrazione di caricamento iniziale, pertanto non è possibile che più estrazioni di caricamento iniziale utilizzino lo stesso snapshot. Pertanto, questo metodo non è supportato quando si utilizzano più estrazioni di caricamento iniziale per parallelizzare il carico di lavoro.
Nell'esempio seguente viene utilizzato il client di amministrazione all'interno dell'architettura di microservizi. Si presuppone che si abbia familiarità con Oracle GoldenGate e che i database di origine e destinazione siano stati impostati correttamente, con tutti i prerequisiti necessari. Questi passi richiedono un minimo di Oracle GoldenGate 21c (21.8.0) o versioni successive.
Eseguire i passi riportati di seguito per impostare i processi di caricamento e sincronizzazione iniziali end-to-end utilizzando il metodo di creazione delle istanze preciso.
-
Registrare un'estrazione Changed Data Capture (CDC) con il database PostgreSQL di origine.
DBLOGIN USERIDALIAS src_alias REGISTER EXTRACT extecdcIn questo esempio,
extecdcè il nome Extract. Per l'architettura dei microservizi, utilizzareDBLOGIN USERIDALIASper l'impostazione della connessione al database. -
Creare un'estrazione di caricamento iniziale.
ADD EXTRACT extinit, SOURCEISTABLE EDIT PARAMS extinitIl file dei parametri Extract di caricamento iniziale deve contenere il parametro
INITIALLOADOPTIONS USESNAPSHOT. Ad esempio:EXTRACT extinit INITIALLOADOPTIONS USESNAPSHOT SOURCEDB USERIDALIAS src_alias EXTFILE west/ei, MEGABYTES 500, PURGE TABLE public.*;Per ulteriori informazioni sull'uso di questo parametro con l'opzione
USESNAPSHOT, vedereINITIALLOADOPTIONS. -
Avviare l'estrazione del carico iniziale.
START EXTRACT extinit -
Quando il caricamento iniziale Extract è stato completato e interrotto, rivedere il relativo file di report per determinare il LSN di posizionamento che deve essere utilizzato dall'estrazione CDC.
Ad esempio, nell'output riportato di seguito, il LSN di posizionamento che verrà utilizzato dall'estrazione CDC sarà '0/173F770'.
INFO OGG-100001 A consistent point is established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770 and snapshot name '00000003-00000026-1'.INFO OGG-100002 Create or position the CDC extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770 or ALTER EXTRACT <cdc-extract> LSN 0/173F770. -
Creare e avviare un Replicat di caricamento iniziale che legge il trail dall'estrazione del caricamento iniziale.
DBLOGIN USERIDALIAS tgt_aliasADD CHECKTPOINTTABLE ggs.checkpointADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repinitDi seguito è riportato un esempio del file dei parametri Replicat di caricamento iniziale.
REPLICAT repinit TARGETDB USERIDALIAS tgt_alias BATCHSQL MAP public.*, TARGET public.*; -
Aggiungere e avviare Estrazione CDC (
extecdc) utilizzando il valore LSN coerente a cui si fa riferimento nel file del report Estrazione caricamento iniziale.ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770ADD EXTTRAIL ea, EXTRACT extecdcSTART EXTRACT extecdcDi seguito è riportato un esempio di file dei parametri di estrazione CDC.
EXTRACT extecdc SOURCEDB USERIDALIAS src_alias EXTTRAIL west/ea TABLE public.*; -
Quando il caricamento iniziale Replicat ha elaborato tutti i record di caricamento iniziale, aggiungere e avviare un Replicat CDC che legge il trail da Estrazione CDC.
ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repecdc -
Monitorare il ritardo sia nel CDC Extract che nel CDC Replicat e, quando sono entrambi vicini a zero secondi, il flusso di dati dal database di origine a quello di destinazione dovrebbe essere vicino in tempo reale.