Nota

Implementa Oracle Zero Downtime Migration 21.5 Cloud Native Disaster Recovery Automation

Introduzione

In una migrazione tipica, Oracle Zero Downtime Migration esegue la migrazione di un database di origine in un solo database di destinazione (singolo punto di errore). Ora nella versione 21.5 puoi anche creare una strategia di Disaster Recovery (DR) durante la post-migrazione per essere in grado di rispondere e recuperare da un evento che influisce negativamente sulle tue operazioni aziendali. Durante la migrazione vengono create istanze di due database di destinazione (database primario di destinazione e database di standby di destinazione), in cui entrambi possono trovarsi in aree diverse (per ridurre l'impatto dei disastri naturali). Durante la fase successiva alla migrazione, la configurazione del broker Oracle Data Guard viene ripristinata in entrambi i database di destinazione per consentire operazioni cloud native quali lo switchover e il failover (nella console di Oracle Database Cloud Service). Per ulteriori informazioni, vedere Creazione di una strategia Oracle Cloud Native Disaster Recovery.

Diagramma architettura

Architettura

Passi del workflow di Oracle Zero Downtime Migration

  1. Avviare la migrazione del database.
  2. Eseguire un ripristino dal servizio.
  3. Crea un'istanza del database di standby sul database primario di destinazione.
  4. Sincronizza primario e di standby sul primario di destinazione.
  5. Eseguire il ripristino dal servizio.
  6. Crea un'istanza del database di standby nel database di standby di destinazione.
  7. Sincronizza gli standby di origine e di destinazione.
  8. Disponibilità dello switchover del monitor.
  9. Esegue lo switchover e la transizione dei ruoli.
  10. Configura il database primario di destinazione e ripristina la configurazione del broker cloud.
    1. Oracle Zero Downtime Migration ripristina la configurazione del broker cloud tra il database primario di destinazione cloud e il database in standby di destinazione cloud.
    2. Oracle Zero Downtime Migration configura il database primario di destinazione per spedire i redo log al database in standby di destinazione.
  11. Eseguire controlli successivi alla convalida.
  12. Finalizzare il processo di migrazione.

Nota: Oracle Base Database Service, Oracle Exadata Database Service on Dedicated Infrastructure, Oracle Exadata Database Service on Cloud@Customer, Exadata on-premise e Oracle Exadata Database Service on Dedicated Infrastructure on Oracle Database@Azure supportano questo flusso di lavoro.

Prerequisiti

Task 1: Task precedenti alla migrazione

I passi riportati di seguito illustrano i task dei prerequisiti da completare prima della migrazione effettiva.

  1. Installare il software nel sistema di origine. Nella build zdmcli viene visualizzata la versione dei file binari. Per maggiori informazioni, vedere Installazione del software sul sistema di origine.

    immettere qui la descrizione dell'immagine

  2. Come indicato nei prerequisiti, l'impostazione DR è stata configurata tra i computer del sistema di database virtual machine primario e di standby di destinazione OCI, come mostrato nell'immagine riportata di seguito.

    immettere qui la descrizione dell'immagine

    Inventario database e server:

    Nome Valore
    Nome e versione DB Db0403 & 19c
    Nome host di origine (in locale) origine database
    Nome host "Prima destinazione" OCI ociserverprimario
    Nome visualizzato console "Prima destinazione" OCI OCI_FUTURE_PRIMARY
    Nome host "Destinazione in standby" OCI Ociserverstandby
    Nome visualizzato console "Destinazione in standby" OCI OCI_FUTURE_STANDBY
    Nome PDB Db0403_Pdb1
    &Versione nome server ZDM workshop & 21.5

    Le immagini riportate di seguito mostrano i dettagli dei sistemi di database primario di destinazione OCI e di database di standby di destinazione.

    immettere qui la descrizione dell'immagine

    immettere qui la descrizione dell'immagine

  3. Il database di origine ha attivato la modalità di log forzato e di archivio e può essere verificato utilizzando il comando seguente.

    select force_logging ,log_mode from v$database;
    FORCE_LOGGING  LOG_MODE
    --------------------------------------- ------------
    YES  ARCHIVELOG
    
  4. Eseguire il comando tnsping per eseguire il test della porta 1521 abilitata tra i server primari di origine e di destinazione e viceversa per la spedizione dei log.

  5. Il server Oracle Zero Downtime Migration deve essere in grado di eseguire l'accesso SSH come zdmuser per l'origine e anche per i server di standby primario e di destinazione come utente OPC. Qui l'utente del sistema operativo del server di origine è anche OPC utilizzato in questa migrazione insieme al nome utente OPC del sistema operativo di destinazione.

    immettere qui la descrizione dell'immagine

  6. File /etc/hosts del server di origine aggiornato con le informazioni sul database primario e sul database di standby di destinazione.

    immettere qui la descrizione dell'immagine

  7. File /etc/hosts del server primario futuro OCI aggiornato con le voci mostrate nella seguente immagine.

    immettere qui la descrizione dell'immagine

  8. File del server in standby futuro OCI ` /etc/hosts` aggiornato con le voci mostrate nella seguente immagine.

    immettere qui la descrizione dell'immagine

  9. File /etc/hosts del server host del servizio Oracle Zero Downtime Migration aggiornato con le voci mostrate nella seguente immagine.

    immettere qui la descrizione dell'immagine

Task 2: Valutazione del job di Oracle Zero Downtime Migration

Verificare il comando di idoneità di Oracle Zero Downtime Migration utilizzando il comando flag -eval. -eval non avvia la migrazione reale, verrà utilizzato per la valutazione dei controlli preliminari e della disponibilità degli ambienti.

Eseguire il comando riportato di seguito:

/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -eval

Output:

immettere qui la descrizione dell'immagine

I parametri del file di risposta verranno utilizzati per la migrazione finale.

immettere qui la descrizione dell'immagine

Task 3: creare un'istanza del job di migrazione finale

Lo stato del job EVAL è riuscito dal task 2 e per avviare la migrazione viene utilizzato il comando seguente.

/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -pauseafter ZDM_CONFIGURE_DG_TGT

Aggiunto il flag pauseafter al comando di migrazione per sospendere la migrazione dopo la fase ZDM_CONFIGURE_DG_TGT. Ora il job è stato completato correttamente fino alla fase ZDM_CONFIGURE_DG_TGT ed è stato sospeso come previsto.

Risultati migrazione:

[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 115
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49
Current status: PAUSED
Current Phase: "ZDM_CONFIGURE_DG_TGT"
Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-03 19:35:48
Job execution elapsed time: 41 minutes 7 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ PENDING
ZDM_SWITCHOVER_TGT ............ PENDING
ZDM_POST_DATABASE_OPEN_TGT .... PENDING
ZDM_DATAPATCH_TGT ............. PENDING
ZDM_POST_MIGRATE_TGT_STBY ..... PENDING
ZDM_POST_MIGRATE_TGT .......... PENDING
ZDM_POSTUSERACTIONS ........... PENDING
ZDM_POSTUSERACTIONS_TGT ....... PENDING
ZDM_POSTUSERACTIONS_STBY ...... PENDING
ZDM_CLEANUP_SRC ............... PENDING
ZDM_CLEANUP_TGT ............... PENDING
ZDM_CLEANUP_STBY .............. PENDING

Pause After Phase: "ZDM_CONFIGURE_DG_TGT" <<<<<<<<<<<<<<<< job paused after this Phase.
[zdmuser@workshop ~]$

Il job di migrazione è stato sospeso prima del passo di switchover. I database di standby primario e futuro OCI verranno modificati in modalità standby fisico e il broker Oracle Data Guard viene configurato dal job Oracle Zero Downtime Migration con tutti e tre i database nella configurazione e tutti sono sincronizzati.

immettere qui la descrizione dell'immagine

Task 4: Avvia fase di switchover del job di migrazione

Per avviare lo switchover, riprendere il job Oracle Zero Downtime Migration e il job Task 3, ovvero 13.

[zdmuser@workshop ~]$ zdmcli resume job -jobid 13

workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 117

Il comando zdmcli query job -jobid 13 fornisce lo stato del job e il job è contrassegnato come riuscito.

Output:

[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 121
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49

Current status: SUCCEEDED <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-04 06:03:04
Job execution elapsed time: 56 minutes 15 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ COMPLETED
ZDM_SWITCHOVER_TGT ............ COMPLETED
ZDM_POST_DATABASE_OPEN_TGT .... COMPLETED
ZDM_DATAPATCH_TGT ............. COMPLETED
ZDM_POST_MIGRATE_TGT_STBY ..... COMPLETED
ZDM_POST_MIGRATE_TGT .......... COMPLETED
ZDM_POSTUSERACTIONS ........... COMPLETED
ZDM_POSTUSERACTIONS_TGT ....... COMPLETED
ZDM_POSTUSERACTIONS_STBY ...... COMPLETED
ZDM_CLEANUP_SRC ............... COMPLETED
ZDM_CLEANUP_TGT ............... COMPLETED
ZDM_CLEANUP_STBY .............. COMPLETED
[zdmuser@workshop ~]$

Il comando DGMGRL viene eseguito dall'infrastruttura OCI primaria di destinazione (ora è primaria corrente) durante l'esecuzione dello switchover del database. Lo standby della destinazione OCI è ancora in modalità In standby come previsto e l'origine è stata modificata dal ruolo in standby primario a quello fisico.

immettere qui la descrizione dell'immagine

Nonostante il database di standby in locale non venga visualizzato nella configurazione del broker, continua a ricevere i redo log dal database primario OCI al database in locale di origine e può essere verificato utilizzando gli switch di log o il valore log_archive_dest_3.

immettere qui la descrizione dell'immagine

Task 5: Rimuovi database di origine dalla configurazione

Rimuovi la sincronizzazione in locale in modo permanente ed esegui lo switchover nativo da OCI Console.

immettere qui la descrizione dell'immagine

Avviare il task di switchover dalla console per eseguire il test dello switchover della console.

immettere qui la descrizione dell'immagine

  Principale OCI standby OCI
Prima dello switchover DB0403_primary_oci DB0403_69p_iad
Dopo lo switchover DB0403_69p_iad DB0403_primary_oci

L'immagine seguente mostra l'output DGMGRL dopo il completamento dello switchover.

immettere qui la descrizione dell'immagine

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.