Migrazione mediante migrazione fisica

In questa procedura viene descritto come eseguire una migrazione fisica in linea o non in linea. Prima di eseguire la migrazione fisica, tenere presente quanto riportato di seguito.

  • Non è necessario cifrare il database di origine nel server x86. La migrazione senza tempi di inattività cifra il database di destinazione durante la migrazione.
  • È necessario definire un wallet TDE (Transparent Data Encryption) nel database di origine prima della migrazione, anche se il database di origine non è cifrato.
  • La password sys, la password del wallet, la versione del database e il livello di patch nei database di origine e di destinazione devono essere uguali.
  • La migrazione senza tempi di inattività eseguirà la migrazione del database container (CDB) in CDB e non CDB in un database non CDB.

Per eseguire una migrazione fisica con migrazione senza tempi di inattività:

  1. Scarica e installa il software Zero Downtime Migration su un server separato. Eseguire il software di migrazione senza tempi di inattività utilizzando zdmuser.
  2. Eseguire il login al server ZDM come utente zdmuser.
  3. Generare una coppia di chiavi ssh.
  4. Abilitare l'Ssh senza password da zdmuser al server x86 di origine (root/privilege-sudoer user) e a tutti i nodi del cluster VM nel database Oracle Exadata Database Service on Cloud@Customer di destinazione (opc user).
  5. In Oracle ZFS Storage Appliance (NAS), creare una condivisione NFS (Network File System) da utilizzare come segnaposto per i backup RMAN del database di origine mentre la migrazione è in corso.
    Il database di destinazione verrà ripristinato dai backup salvati in questa condivisione NFS.
  6. Eseguire il MOUNT della condivisione NFS sullo stesso punto di accesso su tutti i nodi dei database di origine e di destinazione. Assicurarsi che tutti gli utenti dispongano delle autorizzazioni di lettura, scrittura ed esecuzione (rwx) sia per l'origine che per la destinazione.
  7. Creare un database di destinazione Oracle Exadata Database Service on Cloud@Customer utilizzando la GUI OCI o l'API REST. Configurare il database di destinazione come indicato di seguito.
    • I database di destinazione e di origine devono avere gli stessi nomi, ma DB_UNIQUE_NAME diverso.
    • La password sys, la password del wallet, la versione del database e il livello di patch nei database di origine e di destinazione devono essere uguali.
    • Non selezionare una destinazione di backup o abilitare i backup automatici. Queste impostazioni possono essere abilitate dopo la migrazione del database dall'origine alla destinazione.
  8. Verificare che il database di origine sia configurato in modalità log di archiviazione. Se il log di archivio non è abilitato, vedere Abilita modalità log di archivio di seguito.
  9. Se il database di origine non è cifrato, vedere Configura un keystore TDE (Transparent Data Encryption) di seguito. Non è necessario cifrare i dati, è necessario solo il keystore TDE per la migrazione fisica. Assicurarsi che la password keystore (wallet) sia uguale alla password di sistema/wallet utilizzata per creare il database di destinazione in Oracle Exadata Database Service on Cloud@Customer.
  10. Creare un file di risposta per la migrazione senza tempi di inattività per eseguire la migrazione. I parametri principali includono:
    • TGT_DB_UNIQUE_NAME: nome univoco del database per il database di destinazione Oracle Exadata Database Service on Cloud@Customer.
    • MIGRATION_METHOD: OFFLINE_PHYSICAL o ONLINE_PHYSICAL.
    • DATA_TRANSFER_MEDIUM: NFS
    • PLATFORM_TYPE: EXACC
    • BACKUP_PATH: punto di attivazione per NFS (Network File System) Condividi all'origine e alla destinazione dal passo 4.
    • SHUTDOWN_SRC: TRUE
  11. Eseguire un job di migrazione a esecuzione manuale con migrazione a tempo zero (-eval) per convalidare tutti i prerequisiti per la migrazione sono possibili. ad esempio:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10 \
    -eval
  12. Eseguire il job di migrazione senza tempi di inattività. ad esempio:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10
Durante le migrazioni in linea fisiche, la migrazione senza tempi di inattività configura Oracle Data Guard tra l'origine e la destinazione per garantire che il database sia sempre in linea durante la migrazione. Oracle Data Guard sincronizzerà qualsiasi modifica del database di origine nel database di destinazione.
La migrazione fisica viene completata.

Abilita modalità ARvelog

La modalità del log di archivio deve essere abilitata nel database di origine per le migrazioni fisiche senza tempo di inattività. In questi passi viene descritto come configurare la modalità Archivelog nel database di origine.

  1. Convalida che il database di origine non sia configurato in modalità Log di archivio.
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    NOARCHIVELOG
  2. Configurare la destinazione dell'archivio di log del database di origine. L'esempio seguente proviene da un database di origine con file DB in un file system Linux. LOCATION è diverso se i file DB vengono memorizzati nel gruppo di dischi Oracle ASM.
    SQL> alter system set 
    log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/db_name/arc' 
    scope=both;
    System altered.
    SQL> select destination,STATUS from v$archive_dest where status='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    /u01/app/oracle/oradata/db_name/arc
    VALID
  3. Chiudere il database, quindi eseguire il MOUNT del database.
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started
  4. Abilita la modalità Archivelog.
    alter database archivelog;
  5. Aprire il database.
    alter database open;
  6. Verificare che il database sia in modalità Archivelog.
    SQL> select destination,STATUS from v$archive_dest where statuS='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    /u01/app/oracle/oradata/db_name/arc
    VALID
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    ARCHIVELOG

Configurare un keystore TDE (Transparent Data Encryption)

Le migrazioni fisiche senza tempi di inattività richiedono un keystore/wallet di cifratura TDE auto_login (anche se il database di origine non è cifrato). Questo keystore deve essere configurato con la stessa password del keystore del database di destinazione. In questi passi viene descritto come configurare un keystore nel database di origine.

  1. Controllare se esiste una posizione keystore predefinita configurata per il database.
    SQL> select * from v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    NOT_AVAILABLE UNKNOWN SINGLE NONE UNDEFINED
    1
    SQL>
  2. Se non esiste già una directory per il keystore, creare una directory per il keystore.
    mkdir -p /u01/app/oracle/admin/db_name/wallet
  3. Creare una directory in cui memorizzare il file sqlnet.ora.
    mkdir -p $ORACLE_HOME/network/admin/
  4. Creare il file sqlnet.ora nella directory $ORACLE_HOME/network/admin/ con le informazioni del keystore dal passo 1.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
     (METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/db_name/wallet)))
  5. Creare il keystore protetto con una password. Tenere presente che con questa password deve essere configurato anche il keystore del database Oracle Exadata Database Service on Cloud@Customer di destinazione.
    SQL>administer key management create keystore 
    '/u01/app/oracle/admin/db_name/wallet' identified by keystore_password;
  6. Aprire il keystore.
    Se il database di origine è un database non CDB, rimuovere container = ALL.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY 
    keystore_password container = ALL;
  7. Creare un backup per il keystore.
    Se il database di origine è un database non CDB, rimuovere container = ALL.
    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password
    with backup container = ALL;
  8. Verificare che il keystore sia stato creato e di cui sia stato eseguito il backup.
    SQL> SELECT * FROM v$encryption_keys;
    Snip…
    ACTIVATING_PDBNAME
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    ATOlrcGaa0/iv/dFeRSkNSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    db_name
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    1 86B637B62FDF7A65E053F706E80A27CA
    Snip…
  9. Creare un keystore auto_login dal keystore creato al passo 5.
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM 
    KEYSTORE '/u01/app/oracle/admin/db_name/wallet' IDENTIFIED BY 
    keystore_password ;
  10. Chiudere il keystore dal Passo 5.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY 
    keystore_password;
  11. Verificare che il keystore auto_login sia ancora aperto.
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    OPEN AUTOLOGIN SINGLE NONE NO