Replica dei dati da PostgreSQL ad Autonomous Transaction Processing

Impara a replicare i dati da un database server PostgreSQL ad Autonomous Transaction Processing utilizzando OCI GoldenGate.

Prima di iniziare

Per completare correttamente questo QuickTart, è necessario disporre dei seguenti elementi:

Ambiente impostato: PostgreSQL

Per impostare l'ambiente per questo Quickstart:
  1. Eseguire i comandi seguenti per installare PostgreSQL.
    1. Installare il server PostgreSQL:
      sudo yum install postgresql-server
    2. Installare il modulo postgresql-contrib per evitare questa eccezione SQL:
      sudo yum install postgresql-contrib
    3. Creare un nuovo cluster di database PostgreSQL:
      sudo postgresql-setup --initdb
    4. Abilitare postgresql.service:
      sudo systemctl enable postgresql.service
    5. Avviare il file postgresql.service:
      sudo systemctl start postgresql.service
  2. Per impostazione predefinita, PostgreSQL consente solo connessioni locali. Consenti connettività remota a PostgreSQL.
    1. In /var/lib/pgsql/data/postgresql.conf, preparare il database per la replica.
    2. Individuare e decommentare listen_addresses = 'localhost' e modificare localhost in un asterisco (*):
      listen_addresses = '*'
    3. Impostare i parametri indicati di seguito:
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on
      Nota

      Configurare /var/lib/pgsql/data/pg_hba.conf per assicurarsi che l'autenticazione client sia impostata per consentire le connessioni da un host Oracle GoldenGate. Ad esempio:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Per ulteriori informazioni, vedere Il file pg_hba.conf.
    4. Riavviare il server PostgreSQL:
      sudo systemctl restart postgresql.service
  3. Se si utilizza Oracle Cloud Compute per ospitare PostgreSQL, aprire la porta 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Aprire la porta 5432 nella lista di sicurezza della VCN.
  5. Connetti a PostgreSQL.
    > sudo su - postgres
    > psql
    Nota

    In alternativa, è possibile immettere sudo su - postgres psql se l'esempio precedente non funziona.
  6. Impostare PostgreSQL.
    1. Scaricare ed eseguire seedSRCOCIGGLL_PostgreSQL.sql per impostare il database e caricare i dati di esempio.
    2. Eseguire i seguenti comandi per impostare l'utente (assicurarsi di sostituire <password> con una password effettiva):
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Impostazione dell'ambiente: Autonomous Transaction Processing (ATP)

  1. Scaricare ed estrarre lo schema di database di esempio.
  2. Sbloccare l'utente GGADMIN.
    1. Nella console di Oracle Cloud, selezionare l'istanza ATP dalla pagina Autonomous Database per visualizzarne i dettagli e accedere a Database Actions.
    2. Fare clic su Azioni database, quindi su Utenti database.
    3. Individuare GGADMIN, quindi fare clic sul relativo menu con i puntini (tre punti) e selezionare Modifica.
    4. Nel pannello Modifica utente, immettere la password GGADMIN, confermare la password, quindi deselezionare Account bloccato.
    5. Fare clic su Applica modifiche.
  3. Caricare lo schema e i dati di esempio di destinazione.
    1. Dal menu Database Actions selezionare SQL.
    2. Copiare e incollare lo script dal file OCIGGLL_OCIGGS_SETUP_USERS_ADW.sql nel foglio di lavoro SQL.
    3. Fare clic su Esegui script. La scheda Output script visualizza i messaggi di conferma.
    4. Deselezionare il foglio di lavoro SQL, quindi copiare e incollare l'istruzione SQL da OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sql.
    5. Per verificare che le tabelle siano state create correttamente, chiudere la finestra SQL e riaprirla. Nella scheda Navigator cercare lo schema SRC_OCIGGLL, quindi selezionare le tabelle dai rispettivi elenchi a discesa.

Task 1: creare le risorse GoldenGate OCI

Questo esempio di avvio rapido richiede distribuzioni e connessioni sia per l'origine che per la destinazione.
  1. Creare una distribuzione per il database PostgreSQL di origine.
  2. Creare una distribuzione per l'istanza di Autonomous Transaction Processing di destinazione.
  3. Creare una connessione al database PostgreSQL di origine.
    1. Per Tipo, assicurarsi di selezionare PostgreSQL Server.
    2. In Nome database, immettere ociggll.
    3. Per l'host, immettere l'IP pubblico dell'istanza di computazione su cui viene eseguito PostgreSQL.
    4. Per Porta immettere 5432.
    5. In Nome utente immettere ggadmin.
    6. In Password immettere una password.
    7. Per Security Protocol, selezionare Plain.
  4. Creare la connessione per l'istanza di Autonomous Transaction Processing di destinazione.
  5. Creare una connessione a GoldenGate, quindi assegnare questa connessione alla distribuzione PostgreSQL di origine.
  6. Assegnare la connessione di origine alla distribuzione PostgreSQL di origine.
  7. Assegnare la connessione di destinazione alla distribuzione Oracle di destinazione.

Task 2: Abilita il log supplementare

Per abilitare il log supplementare:
  1. Avviare la console di distribuzione PostgreSQL GoldenGate:
    1. Nella pagina Distribuzioni, selezionare la distribuzione PostgreSQL per visualizzarne i dettagli.
    2. Nella pagina dei dettagli della distribuzione PostgreSQL fare clic su Avvia console.
    3. Nella pagina di collegamento della console di distribuzione, immettere le credenziali di amministrazione GoldenGate fornite nel task 1, passo 1.
      Nota

      L'accesso è necessario se IAM non è stato selezionato come area di memorizzazione delle credenziali durante la creazione di una distribuzione.
  2. In GoldenGate 23ai, fare clic su Connessioni DB nella navigazione a sinistra, nel database di origine PostgreSQL e quindi su Trandata.
  3. Nella pagina TRANDATA, accanto alle informazioni TRANDATA, fare clic su Aggiungi TRANDATA (icona più).
  4. Nel pannello Trandata, in Nome schema, immettere src_ociggll.*, quindi fare clic su Sottometti.
    Nota

    Utilizzare il campo di ricerca per cercare src_ociggll e verificare che le tabelle siano state aggiunte.

Task 3: Creare le estrazioni

  1. Aggiungere il file Change Data Capture Extract:
    1. Nella navigazione a sinistra fare clic su Estrazioni,
    2. Nella pagina Estrazioni, fare clic su Aggiungi estrazione (icona più), quindi completare i campi come indicato di seguito.
      • Nella pagina Informazioni estrazione:
        1. Per Tipo di estrazione, selezionare Estrazione Change Data Capture.
        2. In Nome processo, immettere un nome per l'estrazione, ad esempio ECDC.
        3. Successivo.
      • Nella pagina Opzioni estrazione:
        1. Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio
        2. Selezionare il database PostgreSQL di origine dall'elenco a discesa Alias.
        3. In Nome trail estrazione immettere un nome di trail di due caratteri, ad esempio C1.
        4. Successivo.
      • Nella pagina Parametri estrazione, sostituire MAP *.*, TARGET *.*; con quanto segue:
        TABLE SRC_OCIGGLL.*;
    3. Fare clic su Crea ed esegui.
  2. Aggiungere l'estrazione del caricamento iniziale:
    1. Nella pagina Estrazioni, fare clic su Aggiungi estrazione, quindi completare il form Aggiungi estrazione come indicato di seguito.
      • Nella pagina Informazioni estrazione:
        1. Per il tipo di estrazione, selezionare Estrazione caricamento iniziale.
        2. Per Nome processo, immettere un nome, ad esempio EIL.
        3. Successivo.
      • Nella pagina Opzioni estrazione:
        1. Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio.
        2. Selezionare il database PostgreSQL dall'elenco a discesa Alias.
        3. In Nome trail estrazione, immettere un nome di trail di due caratteri, ad esempio I1.
        4. Successivo.
      • Nella pagina Parametri estrazione, sostituire il contenuto dell'area di testo con quanto segue:
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;
        Nota

        Prima di procedere, assicurarsi di rimuovere il parametro SOURCEDB davanti a USERIDALIAS.
    2. Fare clic su Crea ed esegui.
Si torna alla pagina Estrazioni, in cui è possibile osservare l'inizio dell'estrazione.

Task 4: creare Distribution Path per l'estrazione Initial Load

  1. Nella pagina Distribuzioni selezionare la distribuzione di Autonomous Database destinazione.
  2. Nella pagina dei dettagli della distribuzione fare clic su Avvia console, quindi eseguire il login come utente amministratore.
  3. Se si utilizza l'area di memorizzazione delle credenziali IAM, passare al passo Crea Distribution Path. Se si utilizza l'area di memorizzazione delle credenziali GoldenGate, creare un utente con cui utilizzare l'origine GoldenGate per connettersi alla destinazione GoldenGate.
    1. Nel menu di navigazione, fare clic su Amministrazione utenti.
    2. Fare clic su Aggiungi nuovo utente (icona più), completare i campi come indicato di seguito, quindi fare clic su Sottometti:
      • In Nome utente immettere ggsnet.
      • Per Ruolo, selezionare Operatore.
      • Immettere due volte la password per verifica.
  4. Nella console di distribuzione origine PostgreSQL creare una connessione percorso per l'utente creata nel passo precedente.
    1. Nel menu di navigazione, fare clic su Connessioni percorso.
    2. Fare clic su Aggiungi connessione percorso (icona più), completare i campi come indicato di seguito, quindi fare clic su Sottometti:
      • Per Alias credenziale, immettere dpuser.
      • Per l'ID utente, immettere ggsnet
      • Per Password, immettere la stessa password utilizzata nel passo precedente.
  5. Creare un Distribution Path.
    1. Nella barra dei menu del servizio, fare clic su Distribution Service, quindi su Aggiungi Distribution Path (icona più).
    2. Completare il form Aggiungi percorso come riportato di seguito.
      • Nella pagina Informazioni percorso:
        1. Per Nome percorso, immettere un nome per questo percorso.
        2. Successivo.
      • Nella pagina Opzioni di origine:
        1. Per Origine Extract, lasciare vuoto.
        2. Per Nome traccia, immettere il nome del trail Initial Load Extract (I1).
        3. Successivo.
      • Nella pagina Opzioni target:
        1. Per Target, selezionare wss.
        2. Per Host di destinazione, immettere l'URL di distribuzione di destinazione, senza l'https:// o le barre finali.
        3. In Numero porta, immettere 443.
        4. Per Nome percorso, immettere I1.
        5. Per Metodo di autenticazione di destinazione, selezionare Alias UserID.
        6. In Dominio, immettere il nome di dominio creato nel passo precedente.
        7. In Alias, immettere l'alias creato nel passo precedente (dpuser).
        8. Successivo.
    3. Fare clic su Crea ed esegui.
    Si torna alla pagina Distribution Service in cui è possibile rivedere il percorso creato.
  6. Nella console di distribuzione di Autonomous Database destinazione, esaminare il percorso del destinatario creato come risultato del percorso di distribuzione:
    1. Fare clic su Receiver Service.
    2. Esaminare i dettagli Distribution Path.

Task 5: aggiungere un Replicat per Initial Load

  1. Nella distribuzione di Autonomous Database destinazione, aggiungere una tabella Checkpoint.
    1. Nel menu di navigazione, fare clic su Connessioni DB.
    2. Selezionare l'istanza di Autonomous Database di destinazione, quindi Checkpoints.
    3. Nella pagina Checkpoints, fare clic su Aggiungi checkpoint (icona più).
    4. Nel pannello Checkpoint, in Tabella schema, immettere SRCMIRROR_OCIGGLL.CHECKTABLE.
    5. Fare clic su Invia.
  2. Aggiungere Replicat.
    1. Nel menu di navigazione fare clic su Replicats.
    2. Nella pagina Replicats fare clic su Aggiungi Replicat (icona più), quindi completare i campi Aggiungi Replicat come indicato di seguito.
      • Nella pagina Replicat Informazioni:
        1. Per Replicat, tipo, selezionare Nonintegrated Replicat.
        2. Per Nome processo, immettere un nome, ad esempio RIL.
        3. Fare clic su Successivo
      • Nella pagina Opzioni Replicat:
        1. Per Replicat Nome trail, immettere il nome del trail dal task 2 (I1).
        2. Per Credenziali di destinazione, selezionare il dominio e l'alias per la connessione ad Autonomous Database.
        3. Per Tabella checkpoint, selezionare la tabella checkpoint creata nel passo 1.
        4. Successivo.
      • Nella pagina File dei parametri, sostituire MAP *.*, TARGET *.*; con quanto segue:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Fare clic su Crea ed esegui.
      Si torna alla pagina Replicats, dove è possibile rivedere i dettagli di Replicat.
  3. Selezionare Replicat (RIL) e visualizzare i relativi dettagli.
  4. Fare clic su Statistiche ed esaminare il numero di inserimenti. Aggiornare la pagina.
    • Se il numero di inserimenti non cambia, tutti i record del file Initial Load sono stati caricati ed è possibile arrestare il file Replicat (RIL)
    • Se il numero di inserimenti continua ad aumentare, aggiornare la pagina finché i record Initial Load non vengono tutti caricati prima di continuare.
  5. Verificare Initial Load.
    1. Nella console di Oracle Cloud, nella pagina dei dettagli di Autonomous Database, fare clic su Azioni database, quindi su SQL.
    2. Nello strumento SQL, immettere nel foglio di lavoro ciascuna delle seguenti istruzioni e fare clic su Esegui istruzione:
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY;
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
    L'output deve restituire i dati caricati nelle tabelle del database di destinazione come risultato del comando Initial Load.

Task 6: creare un Distribution Path per Change Data Capture Extract

  1. Nella console di distribuzione origine PostgreSQL, fare clic su Distribution Service.
  2. Fare clic su Aggiungi Distribution Path.
  3. Completare il form Aggiungi percorso come riportato di seguito.
    1. Nella pagina Informazioni percorso:
      1. Per Nome percorso, immettere un nome.
      2. Successivo.
    2. Nella pagina Opzioni di origine:
      1. In Origine Extract, selezionare Integrated Extract (ECDC)).
      2. Per Nome percorso, selezionare il file trail Integrated Extract (C1).
      3. Successivo.
    3. Nella pagina Opzioni target:
      1. Per Target, selezionare wss.
      2. Per Host di destinazione, immettere l'URL della console di distribuzione di destinazione (è possibile trovarlo nella pagina dei dettagli della distribuzione, senza l'https:// o le barre finali).
      3. In Numero porta, immettere 443.
      4. Per Nome percorso, immettere C1.
      5. Per Metodo di autenticazione di destinazione, selezionare Alias UserID.
      6. Per Dominio, immettere il nome del dominio.
      7. Per Alias immettere l'alias.
    4. Fare clic su Crea percorso ed esegui.
  4. Nella console di distribuzione di Autonomous Database di destinazione, fare clic su Servizio ricevente, quindi rivedere il percorso del ricevente creato.

Task 7: aggiungere un Replicat per Change Data Capture

  1. Nella console di distribuzione di Autonomous Database target, aggiungere un Replicat.
    1. Nel menu di navigazione del servizio di amministrazione fare clic su Replicats.
    2. Nella pagina Replicats fare clic su Aggiungi Replicat (icona più), quindi completare il form Aggiungi Replicat come indicato di seguito.
      • Nella pagina Informazioni su Replicat:
        1. Per Replicat, tipo, selezionare Nonintegrated Replicat.
        2. Per Nome processo, immettere un nome, ad esempio RCDC.
        3. Successivo.
      • Nella pagina Opzioni Replicat:
        1. Per Replicat Nome trail, immettere il nome del trail dal task 3 (C1).
        2. Per Credenziali di destinazione, selezionare il dominio e l'alias per la connessione ad Autonomous Database.
        3. In Tabella checkpoint, selezionare la tabella Checkpoint.
      • Nella pagina Parametri Replicat, sostituire MAP *.*, TARGET *.*; con il mapping seguente:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Fare clic su Crea. Non eseguire Replicat.
  2. Nella pagina Replicats, selezionare Replicat per Initial Load (RIL) e visualizzare i relativi dettagli.
  3. Fare clic su Statistiche ed esaminare il numero di inserimenti. Aggiornare la pagina.
    • Se il numero di inserimenti non cambia, tutti i record del file Initial Load sono stati caricati ed è possibile arrestare il file Replicat (RIL)
    • Se il numero di inserimenti continua ad aumentare, aggiornare la pagina finché i record Initial Load non vengono tutti caricati prima di continuare.
    Nota

    Se non vengono visualizzati inserimenti, fare clic su Servizio metriche prestazioni, selezionare Estrai e quindi fare clic su Statistiche database.
  4. Tornare alla pagina Replicats, quindi avviare Replicat per Change Data Capture (RCDC).
  5. Dopo aver avviato Replicat per Change Data Capture, esaminare i relativi dettagli e Statistiche per visualizzare il numero di inserimenti.
  6. Verificare la replica:
    1. Eseguire lo script seguente per eseguire gli inserimenti nel database PostgreSQL:
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. Nella console di distribuzione PostgreSQL di origine, selezionare Change Data Capture Extract (ECDC), quindi fare clic su Statistiche. Verificare che in src_ociggll.src_city siano presenti 10 inserimenti.
      Nota

      Se Extract non ha acquisito alcun inserimento, riavviare ECDC Extract.
    3. Nella console di distribuzione di Autonomous Database di destinazione, selezionare il nome Replicat (RCDC), visualizzare i relativi dettagli, quindi selezionare Statistiche. Verificare che SRCMIRROR_OCIGGLL.SRC_CITY contenga 10 inserimenti.

Task 8: Monitorare e gestire i processi