Note:

Migración de una base de datos sin contenedor 19c local a una base de datos de contenedores de Oracle Database 23ai

Introducción

Zero Downtime Migration (ZDM) 21.5 presenta la migración física con una actualización en curso, lo que permite transiciones perfectas para las bases de datos de Oracle. Esta función soporta la migración de bases de datos Oracle 11.2.0.4 y 12c a bases de datos Oracle 19c, así como migraciones de bases de datos de origen 19c a Oracle Database 23ai.

En este tutorial se describe cómo ZDM facilita la migración y conversión de una base de datos sin contenedor (CDB) 19c de origen en una CDB al realizar una actualización en el nivel de destino. ZDM realiza una migración inicial mediante una base de datos de destino no CDB temporal para que los clientes migren y actualicen una base de datos no CDB. Al completar esta fase inicial, ZDM aprovecha la actualización automática para convertir a multi-inquilino y actualizar la base de datos a la versión deseada.

Este tutorial está específicamente adaptado para migrar bases de datos no CDB locales que ejecuten la versión 19c desde una plataforma Linux a la CDB de Oracle Database 23ai.

A continuación, se muestran las propiedades y los detalles de los entornos de origen y destino.

Imagen en la que se muestran los detalles de origen y destino

Objetivos

Requisitos

Tarea 1: Preparación e instalación del servidor ZDM

  1. Aprovisione un host de recursos informáticos dedicado para la instalación del software ZDM. El host donde está instalado el software ZDM se denomina host de servicio ZDM. Se deben cumplir los siguientes requisitos en el host:

    • Oracle Linux 8 y un tamaño de volumen de inicio de 200 GB.
    • 100 GB de espacio de almacenamiento libre.
    • No hay Oracle Grid Infrastructure en ejecución.
    • Posible conectar a la base de datos de origen y destino (servidores).
  2. Conéctese al host de ZDM mediante putty.

  3. Ejecute el siguiente comando para ampliar el sistema de archivos y que los 200 GB estén disponibles.

    [opc@zdm ~]$ sudo su -
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        39G  3.2G   36G   9% /
    [root@zdm ~]# /usr/libexec/oci-growfs -y
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       192G  3.2G  189G   2% /
    
  4. Cree un nuevo grupo, usuario y los directorios necesarios como usuario root con el siguiente comando.

    [root@zdm ~]# groupadd zdm
    [root@zdm ~]# useradd -g zdm zdmuser
    [root@zdm ~]# mkdir -p /home/zdmuser/zdminstall
    [root@zdm ~]# mkdir /home/zdmuser/zdmhome
    [root@zdm ~]# mkdir /home/zdmuser/zdmbase
    [root@zdm ~]# chown -R zdmuser:zdm /home/zdmuser/
    
  5. Instale los paquetes de software necesarios como usuario root con el siguiente comando.

    [root@zdm ~]# yum install oraclelinux-developer-release-el8 libnsl perl unzip glibc-devel expect libaio ncurses-compat-libs ncurses-devel numactl-libs openssl mlocate bind-utils
    
  6. Descargue la versión 21.5 del software ZDM y copie el archivo zip en el host ZDM en el directorio /home/zdmuser/zdminstall/. Cambie el propietario del archivo zip a zdmuser como usuario root con el siguiente comando.

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. Instale el software ZDM como zdmuser con el siguiente comando.

    [zdmuser@zdm ~]$ cd /home/zdmuser/zdminstall/
    [zdmuser@zdm zdminstall]$ unzip zdm21.5.zip
    
    [zdmuser@zdm zdminstall]$ ZDMHOME=/home/zdmuser/zdmhome
    [zdmuser@zdm zdminstall]$ ZDMBASE=/home/zdmuser/zdmbase
    
    [zdmuser@zdm zdminstall]$ /home/zdmuser/zdminstall/zdm21.5/zdminstall.sh setup oraclehome=/home/zdmuser/zdmhome oraclebase=/home/zdmuser/zdmbase ziploc=/home/zdmuser/zdminstall/zdm21.5/zdm_home.zip -zdm
    ZDM service setup finished successfully...
    
  8. Ejecute el siguiente comando para iniciar ZDM y compruebe el estado como zdmuser.

    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice start
    Return code is 0
    Server started successfully.
    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status
    ---------------------------------------
    		Service Status
    ---------------------------------------
    Running:       true
    
  9. Ejecute el siguiente comando para crear un par de claves SSH para zdmuser. Se utilizará más adelante para conectarse al servidor de base de datos de origen y destino mediante SSH. Mantenga los valores por defecto.

    [zdmuser@zdm ~]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zdmuser/.ssh/id_rsa):
    Created directory '/home/zdmuser/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/zdmuser/.ssh/id_rsa.
    Your public key has been saved in /home/zdmuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:giU7jz/8Z1VPiS9Ds/gfokHdevpm0dk59fPYEHRChs4
    zdmuser@zdmhost
    The key's randomart image is:
    
  10. Cree un token de autenticación para el usuario de OCI desde la página Detalles de usuario.

    Haga clic en Tokens de autenticación, Generar token, introduzca Descripción y haga clic en Generar token.

    Nota: Copie este token para sus registros, ya que no se volverá a mostrar.

    Imagen en la que se muestra la creación del token de autenticación

  11. Ejecute el siguiente comando para instalar la herramienta de interfaz de línea de comandos (CLI de OCI) de Oracle Cloud Infrastructure como zdmuser, que se utilizará para acceder a los recursos de OCI. Por ejemplo, copie el archivo de volcado del pump de datos en OCI Object Storage.

    [zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
    

    Nota: La instalación de la CLI de OCI requiere OCID de usuario, OCID de arrendamiento, región de inicio, utilizar estos valores según su arrendamiento en la nube y mantener el resto de valores de parámetros como valores por defecto.

    [zdmuser@zdm ~]$ oci setup config
    
  12. Ejecute el siguiente comando para cargar la clave pública de firma de API en el usuario de OCI en el arrendamiento en la nube desde zdmhost.

    [zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem
    -----BEGIN PUBLIC KEY-----
    **********
    -----END PUBLIC KEY-----
    

    Vaya a la consola de OCI, vaya a la página Detalles de usuario, haga clic en Claves de API y Agregar clave de API. Seleccione Pegar clave pública, introduzca la salida del comando anterior y haga clic en Agregar.

    Imagen en la que se muestra cómo agregar una clave de API

  13. Ejecute el siguiente comando para crear un cubo estándar de OCI Object Storage en el arrendamiento de OCI mediante la CLI de OCI o la consola de OCI.

    [zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
    
  14. Conectividad de zdmhost a los servidores de base de datos de origen y destino: copie la clave SSH de zdmhost como zdmuser en el origen y destino como se ha creado en la tarea 1.9.

    #on ZDM host as zdmuser
    [zdmuser@zdm ~]$ cat .ssh/id_rsa.pub
    #on the source database host as user opc
    [opc@sourcedb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    [opc@targetdb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    
  15. Resuelva los nombres de host de la base de datos origen y la base de datos destino en zdmhost copiando el nombre de host, la IP y el FQDN en /etc/hosts en zdmhost como usuario raíz.

Tarea 2: Ejecución de comprobaciones previas en la base de datos de origen y de destino

  1. Ejecute los siguientes comandos para crear ORACLE_HOME en la instancia de Oracle Base Database Service de destino con la misma versión que el origen.

    [root@tgtzdm ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    c548b052-64b7-4257-bfdc-d7c201a430ab     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    
    [root@tgt23ai ~]# dbcli create-dbhome -v 19.23
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Created
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  0%
    				Message:  Create Database Home
    			Error Code:
    
  2. Ejecute el siguiente comando para validar la creación del directorio raíz de base de datos.

    [root@tgt23ai ~]# dbcli describe-job --jobid a63db258-7ffc-4dee-b8e5-5accf223e39b
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Success
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  100%
    				Message:  Create Database Home
    			Error Code:
    
    Task Name                                                                Start Time                          End Time                            Status
    ------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
    Database home creation                                                   September 19, 2024 at 3:22:49 PM IST September 19, 2024 at 3:27:40 PM IST Success
    
    
    [root@test23ai ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    43247858-4ff6-4fcb-85f2-09d453d863bf     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    a63db258-7ffc-4dee-b8e5-5accf223e39b     OraDB19000_home1     19.23.0.0.0                              /u01/app/oracle/product/19.0.0.0/dbhome_1     Configured
    

Tarea 3: Preparación del archivo de respuesta

  1. Copie el archivo de respuesta de plantilla en zdmhost colocado en $ZDM_HOME/rhp/zdm/template/ en un directorio diferente.

  2. Modifique el archivo de respuesta copiado según la configuración del entorno de origen y destino. A continuación, se muestra un archivo de respuesta de ejemplo compartido con parámetros mínimos utilizados para completar la migración con actualización.

    TGT_DB_UNIQUE_NAME=tgt23ai_ai
    MIGRATION_METHOD=OFFLINE_PHYSICAL
    DATA_TRANSFER_MEDIUM=OSS
    PLATFORM_TYPE=VMDB
    SRC_DB_LISTENER_PORT=1521
    HOST=https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com/v1/frrudica1wgd
    OPC_CONTAINER=ZDM
    NONCDBTOPDB_CONVERSION=TRUE
    TGT_SKIP_DATAPATCH=FALSE
    ZDM_NONCDBTOPDB_PDB_NAME=newpdb23
    ZDM_PRE_UPGRADE_TARGET_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
    

Tarea 4: Evaluación de la migración

Evalúe la migración modificando los parámetros según los detalles de origen y destino.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s****aik@oracle.com \
-eval

Nota: Puede supervisar el trabajo mediante el siguiente comando.

$ZDM_HOME/bin/zdmcli query job -jobid <jobid>

Tarea 5: Realizar la migración real

Realice la migración real con el siguiente comando. Modifique los valores según el entorno de origen y de destino.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s***aik@oracle.com

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.