Nota

Eseguire la migrazione di un database PostgreSQL on-premise nel database OCI con PostgreSQL utilizzando OCI GoldenGate

Introduzione

Oracle Cloud Infrastructure Database with PostgreSQL (OCI Database with PostgreSQL) è un servizio completamente gestito che ridimensiona automaticamente lo storage man mano che le tabelle del database vengono create o eliminate. Ciò semplifica la gestione e ottimizza i costi di storage. I dati vengono cifrati sia in transito che in archivio.

OCI GoldenGate supporta la migrazione online logica che consente transizioni trasparenti e una migrazione quasi senza tempi di inattività per il database OCI con i database dei servizi PostgreSQL. Questa funzione supporta la migrazione dei database PostgreSQL in locale su VM al database OCI con il servizio PostgreSQL Versioni 14, 15 database e release future.

Questa esercitazione descrive in che modo OCI GoldenGate facilita la migrazione dei database PostgreSQL in locale su VM versione 14 al database OCI con i database di servizio PostgreSQL versione 14. Il caricamento iniziale viene eseguito utilizzando la utility di backup pg_dump (pg_dumpall)/pg_restore. Questa operazione creerà un backup o uno snapshot del database di origine, che verrà ripristinato nel sistema di destinazione seguito dalla replica OCI GoldenGate Change Data Capture (CDC) per sincronizzare l'origine (database VM PostgreSQL in locale) e la destinazione (database OCI con servizio PostgreSQL).

L'immagine riportata di seguito mostra l'architettura per la migrazione di un database PostgreSQL in locale nella VM al database OCI con il servizio PostgreSQL utilizzando OCI GoldenGate.

Immagine che illustra l'architettura

Obiettivi

Prerequisiti

Nota: questi prerequisiti si riferiscono a un database PostgreSQL in locale nella VM (origine).

Task 1: Prepara ambiente database di origine

  1. Eseguire la query seguente per creare l'utente di replica. Questo utente deve essere utilizzato durante la creazione di una connessione in OCI Console.

    create user ggadmin with password ‘<<password>>’;
    GRANT ALL PRIVILEGES ON DATABASE campaign TO ggadmin;
    alter user ggadmin replication;
    alter user ggadmin with superuser;
    
  2. Il seguente parametro deve essere modificato e il sistema di database deve essere riavviato affinché wal_level venga modificato.

    ALTER SYSTEM SET wal_level = logical;
    ALTER SYSTEM SET track_commit_timestamp = on;
    

Task 2: eseguire il provisioning di OCI GoldenGate e configurare le connessioni

  1. Eseguire il login a OCI Console e creare la distribuzione di OCI GoldenGate per il database PostgreSQL.

    Immagine che mostra la creazione della distribuzione

    Immagine che mostra la creazione della distribuzione

    Immagine che mostra la creazione della distribuzione

    Immagine che mostra la creazione della distribuzione

    Immagine che mostra la creazione della distribuzione

  2. Creare la connessione GoldenGate OCI per OCI PostgreSQL.

    1. Immettere i dettagli della connessione di origine e fare clic su Crea.

      Immagine che mostra la creazione di SourceConnections

      Immagine che mostra la creazione di SourceConnections

    2. Immettere i dettagli della connessione di destinazione e fare clic su Crea.

      Immagine che mostra la creazione di TargetConnections

      Immagine che mostra la creazione di TargetConnections

    Nota: se viene creata la connessione per la VM, il protocollo SSL deve essere Plain e per il database OCI con il servizio PostgreSQL, il protocollo SSL deve essere Require.

  3. Fare clic su Crea per creare la connessione.

Task 3: Impostazione della replica del database di origine

  1. Crea Estrai in OCI GoldenGate.

    Immagine che mostra la creazione della trandata dello schema

    Nota: aggiungere la trandata dello schema nel database di origine per tutti gli schemi idonei e fare clic su Sottometti.

    Immagine che mostra la creazione dell'estrazione

    Immagine che mostra la creazione dell'estrazione

    Immagine che mostra la creazione del parametro Extract file1

    Nota: fare clic su CREA e non fare clic su CREA ed esegui.

  2. Creare uno slot di replica temporanea nel database di origine che verrà utilizzato per creare un punto di partenza per il processo Extract e per il posizionamento dello snapshot PostgreSQL. Questa operazione può essere eseguita utilizzando il comando CREATE_REPLICATION_SLOT. Attenersi alla procedura per configurare lo slot di replica temporaneo.

    1. Eseguire il login al database PostgreSQL utilizzando psql come utente con il ruolo di replica, ad esempio postgres o ggadmin.

    2. Usare l'opzione replication=database.

      psql "dbname=pgsource replication=database user=postgres" 
      CREATE_REPLICATION_SLOT tslot TEMPORARY LOGICAL test_decoding EXPORT_SNAPSHOT;
      slot_name | consistent_point | snapshot_name | output_plugin
      ----------+------------------+---------------+--------------------- 
          tslot | 1/4232A6B0 | 00000007-00001142-1 | test_decoding 
      
    3. Prendere nota dei dettagli snapshot_name e consistent_point.

      Nota:

      • consistent_point deve essere utilizzato per posizionare l'estrazione GoldenGate OCI e avviare l'estrazione per acquisire le transazioni CDC.
      • snapshot_name deve essere utilizzato per il caricamento iniziale dal database di origine al database di destinazione utilizzando pg_dump e pg_restore.
  3. Posizionare l'estrazione Goldengate OCI nel numero di sequenza log consistent_point (LSN).

    Lo stato dell'estrazione CDC creata sarà Interrotto.

    Immagine che mostra la creazione del posizionamento dell'estrazione

    In Azioni, fare clic sull'icona ... e selezionare Modifica.

    Immagine che mostra la creazione del posizionamento dell'estrazione

    Modificare la posizione di LSN in consistent_point acquisita nel task 3.2.

    Immagine che mostra la creazione del posizionamento dell'estrazione

  4. Fare clic su Sottometti e avviare il processo di estrazione.

    Extract sarà in esecuzione e avvierà l'acquisizione CDC dalla posizione modificata.

    Immagine che mostra la creazione del posizionamento dell'estrazione

Task 4: Esegui backup e ripristino su database di origine e di destinazione

  1. Eseguire il comando riportato di seguito per eseguire il backup del database primario di origine.

    nohup /u01/pgsql-14/bin/pg_dump -h <<Sourceip>> -p 5432 -U <<superuser/ggadmin user>> –snapshot=00000007-00001142-1 -F c -b -v -f latestdump.db pgsource &
    
  2. Eseguire il comando riportato di seguito per ripristinare i dump nel database di destinazione.

    nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
    

Task 5: Impostazione della replica del database di destinazione

  1. Creare la tabella di checkpoint in qualsiasi schema disponibile nel database di destinazione GoldenGate OCI e fare clic su Sottometti.

    Immagine che mostra la creazione della tabella di checkpoint

  2. Creare il processo Replicat con la connessione al database di destinazione per applicare i dati CDC al database di destinazione.

    Immagine che mostra la creazione di Replicat

    Immagine che mostra la creazione di Replicat

    Immagine che mostra la creazione di Replicat

    Immagine che mostra la creazione del file del parametro Replicat

  3. Fare clic su Invia e avviare Replicat. Consenti la sincronizzazione.

    Immagine che mostra la creazione di Replicat

Task 6: eseguire la migrazione effettiva

Taglia il database VM PostgreSQL on premise al database OCI con il servizio PostgreSQL.

Task 7: Convalida migrazione

Verificare gli oggetti e i dati del database trasferiti nel sistema di database di destinazione nel database OCI con PostgreSQL per assicurarsi che la migrazione sia riuscita e che non si verifichino problemi o discrepanze.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.