Migración mediante migración física

En estos pasos, se describe cómo realizar una migración física en línea o fuera de línea. Antes de realizar la migración física, tenga en cuenta lo siguiente.

  • La base de datos origen del servidor x86 no tiene que estar cifrada. Zero Downtime Migration cifrará la base de datos destino durante la migración.
  • Se debe definir una cartera de cifrado de datos transparente (TDE) en la base de datos de origen antes de la migración, incluso si la base de datos de origen no está cifrada.
  • La contraseña sys, la contraseña de cartera, la versión de la base de datos y el nivel de parche en las bases de datos de origen y destino deben ser iguales.
  • Zero Downtime Migration migrará base de datos de contenedor (CDB) a CDB y no a CDB a no CDB.

Para ejecutar una migración física con Zero Downtime Migration:

  1. Descargue e instale el software Zero Downtime Migration en un servidor independiente. Ejecute el software Zero Downtime Migration mediante zdmuser.
  2. Inicie sesión en el servidor ZDM como zdmuser.
  3. Genere un par de claves SSH.
  4. Active ssh sin contraseña de zdmuser al servidor x86 de origen (root/privilege-sudoer user) y a todos los nodos de cluster de VM en la base de datos Oracle Exadata Database Service on Cloud@Customer de destino (opc user).
  5. En Oracle ZFS Storage Appliance (NAS), cree un recurso compartido de sistema de archivos de red (NFS) que se utilizará como marcador de posición para las copias de seguridad de RMAN de la base de datos de origen mientras la migración está en curso.
    La base de datos destino se restaurará a partir de las copias de seguridad guardadas en este recurso compartido NFS.
  6. Monte el recurso compartido NFS en el mismo punto de montaje en todos los nodos de las bases de datos de origen y destino. Asegúrese de que todos los usuarios tienen permisos de lectura, escritura y ejecución (rwx) tanto en el origen como en el destino.
  7. Cree una base de datos de destino de Oracle Exadata Database Service on Cloud@Customer mediante la GUI de OCI o la API de REST. Configure la base de datos de destino de la siguiente manera:
    • Las bases de datos de destino y origen deben tener los mismos nombres, pero DB_UNIQUE_NAME diferente.
    • La contraseña sys, la contraseña de cartera, la versión de la base de datos y el nivel de parche en las bases de datos de origen y destino deben ser iguales.
    • No seleccione un destino de copia de seguridad ni active las copias de seguridad automáticas. Esta configuración se puede activar después de que la base de datos se haya migrado de origen a destino.
  8. Verifique que la base de datos origen esté configurada en modo de archive log. Si el archive log no está activado, consulte Activar modo de archive log a continuación.
  9. Si la base de datos origen no está cifrada, consulte Configuración de un almacén de claves de cifrado de datos transparente (TDE) a continuación. No es necesario cifrar los datos, solo se necesita el almacén de claves de TDE para la migración física. Asegúrese de que la contraseña del almacén de claves (cartera) es la misma que la contraseña de sys/cartera utilizada para crear la base de datos destino en Oracle Exadata Database Service on Cloud@Customer.
  10. Cree un archivo de respuesta para Zero Downtime Migration para ejecutar la migración. Los parámetros clave incluyen:
    • TGT_DB_UNIQUE_NAME: nombre único de base de datos para la base de datos de destino de Oracle Exadata Database Service on Cloud@Customer.
    • MIGRATION_METHOD: OFFLINE_PHYSICAL o ONLINE_PHYSICAL.
    • DATA_TRANSFER_MEDIUM: NFS
    • PLATFORM_TYPE: EXACC
    • BACKUP_PATH: punto de montaje para recurso compartido del sistema de archivos de red (NFS) en origen y destino del paso 4.
    • SHUTDOWN_SRC: TRUE
  11. Se puede ejecutar un trabajo de migración en seco de ejecución de migración sin tiempo de inactividad (-eval) para validar todos los requisitos previos para la migración. Por ejemplo:
    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. Ejecute el trabajo de migración sin tiempo de inactividad. Por ejemplo:
    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 las migraciones físicas en línea, Zero Downtime Migration configurará Oracle Data Guard entre el origen y el destino para garantizar que la base de datos siempre esté en línea durante la migración. Oracle Data Guard sincronizará cualquier cambio de la base de datos origen en la base de datos destino.
Esta acción finaliza la migración física.

Activar modo Archivelog

El modo de archive log debe estar activado en la base de datos de origen para las migraciones físicas sin tiempo de inactividad. En estos pasos se describe cómo configurar el modo Archivelog en la base de datos origen.

  1. Valide que la base de datos origen no esté configurada en modo de archive log.
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    NOARCHIVELOG
  2. Configure el destino del archivo log de la base de datos origen. El siguiente ejemplo procede de una base de datos origen con archivos de base de datos en un sistema de archivos Linux. LOCATION es diferente si los archivos de base de datos se almacenan en el grupo de discos de 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. Cierre la base de datos y, a continuación, monte la base de datos.
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started
  4. Active el modo Archivelog.
    alter database archivelog;
  5. Abra la base de datos.
    alter database open;
  6. Verifique que la base de datos está en modo 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

Configuración de un almacén de claves de cifrado de datos transparente (TDE)

Las migraciones físicas de Zero Downtime Migration necesitan un almacén de claves/cartera de cifrado TDE auto_login (incluso si la base de datos de origen no está cifrada). Este almacén de claves se debe configurar con la misma contraseña que el almacén de claves de la base de datos destino. En estos pasos se describe cómo configurar un almacén de claves en la base de datos origen.

  1. Compruebe si hay una ubicación de almacén de claves por defecto configurada para la base de datos.
    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. Si aún no existe un directorio para el almacén de claves, cree un directorio para el almacén de claves.
    mkdir -p /u01/app/oracle/admin/db_name/wallet
  3. Cree un directorio para almacenar el archivo sqlnet.ora.
    mkdir -p $ORACLE_HOME/network/admin/
  4. Cree el archivo sqlnet.ora en el directorio $ORACLE_HOME/network/admin/ con la información del almacén de claves del paso 1.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
     (METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/db_name/wallet)))
  5. Cree el almacén de claves protegido con una contraseña. Tenga en cuenta que el almacén de claves de la base de datos de destino de Oracle Exadata Database Service on Cloud@Customer también se debe configurar con esta contraseña.
    SQL>administer key management create keystore 
    '/u01/app/oracle/admin/db_name/wallet' identified by keystore_password;
  6. Abra el almacén de claves.
    Si la base de datos origen no es una CDB, elimine container = ALL.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY 
    keystore_password container = ALL;
  7. Cree una copia de seguridad para el almacén de claves.
    Si la base de datos origen no es una CDB, elimine container = ALL.
    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password
    with backup container = ALL;
  8. Verifique que se haya creado y realizado una copia de seguridad del almacén de claves.
    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. Cree un almacén de claves auto_login a partir del almacén de claves creado en el paso 5.
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM 
    KEYSTORE '/u01/app/oracle/admin/db_name/wallet' IDENTIFIED BY 
    keystore_password ;
  10. Cierre el almacén de claves del paso 5.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY 
    keystore_password;
  11. Verifique que el almacén de claves auto_login aún está abierto.
    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