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.

  1. Registrare un'estrazione Changed Data Capture (CDC) con il database PostgreSQL di origine.

    DBLOGIN USERIDALIAS src_alias
    REGISTER EXTRACT extecdc

    In questo esempio, extecdc è il nome Extract. Per l'architettura dei microservizi, utilizzare DBLOGIN USERIDALIAS per l'impostazione della connessione al database.

  2. Creare un'estrazione di caricamento iniziale.

    ADD EXTRACT extinit, SOURCEISTABLE
    EDIT PARAMS extinit

    Il 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, vedere INITIALLOADOPTIONS.

  3. Avviare l'estrazione del carico iniziale.

    START EXTRACT extinit
  4. 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.
  5. Creare e avviare un Replicat di caricamento iniziale che legge il trail dall'estrazione del caricamento iniziale.

    DBLOGIN USERIDALIAS tgt_alias
    ADD CHECKTPOINTTABLE ggs.checkpoint
    ADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repinit

    Di seguito è riportato un esempio del file dei parametri Replicat di caricamento iniziale.

    REPLICAT repinit
    TARGETDB USERIDALIAS tgt_alias
    BATCHSQL
    MAP public.*, TARGET public.*;
  6. 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/173F770
    ADD EXTTRAIL ea, EXTRACT extecdc
    START EXTRACT extecdc

    Di seguito è riportato un esempio di file dei parametri di estrazione CDC.

    EXTRACT extecdc
    SOURCEDB USERIDALIAS src_alias
    EXTTRAIL west/ea
    TABLE public.*;
  7. 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.ggcheckpoint
    START REPLICAT repecdc
  8. 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.