Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Migración de bases de datos desde las instalaciones al cloud de Azure

Colaboradores

Como resultado de la decisión de Oracle de eliminar las bases de datos de instancia única, muchas organizaciones han convertido bases de datos de Oracle de instancia única en bases de datos de contenedores multitenant. Esto permite la fácil reubicación de un subconjunto de bases de datos de contenedor llamadas PDB a cloud con la opción de disponibilidad máxima, que minimiza el tiempo de inactividad durante la migración.

Sin embargo, si todavía tiene una única instancia de una base de datos de Oracle, primero puede convertirse en una base de datos de contenedor multitenant en su lugar antes de intentar reubicar la PDB.

En las siguientes secciones se ofrecen detalles sobre la migración de las bases de datos de Oracle en las instalaciones al cloud de Azure en cualquiera de estos casos.

Convertir una sola instancia que no es una CDB en una PDB en una CDB multitenant

Si aún tiene una base de datos de Oracle de una instancia, debe convertirse en una base de datos de contenedor multitenant tanto si desea migrarla al cloud como si no, ya que Oracle dejará de admitir bases de datos de instancia única pronto.

En los siguientes procedimientos se conecta una base de datos de instancia única a una base de datos de contenedor como una base de datos o una PDB conectables.

  1. Cree una base de datos de contenedor de shell en el mismo host que la base de datos de instancia única en un servidor independiente ORACLE_HOME.

  2. Cierre la base de datos de instancia única y reiníciela en modo de sólo lectura.

  3. Ejecute el DBMS_PDB.DESCRIBE procedimiento para generar los metadatos de la base de datos.

    BEGIN
      DBMS_PDB.DESCRIBE(
        pdb_descr_file => '/home/oracle/ncdb.xml');
    END;
    /
  4. Cierre la base de datos de instancia única.

  5. Inicie la base de datos contenedora.

  6. Ejecute el DBMS_PDB.CHECK_PLUG_COMPATIBILITY Función para determinar si la CDB no es compatible con la CDB.

    SET SERVEROUTPUT ON
    DECLARE
      compatible CONSTANT VARCHAR2(3) :=
        CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
               pdb_descr_file => '/disk1/oracle/ncdb.xml',
               pdb_name       => 'NCDB')
        WHEN TRUE THEN 'YES'
        ELSE 'NO'
    END;
    BEGIN
      DBMS_OUTPUT.PUT_LINE(compatible);
    END;
    /

    Si la salida es SÍ, la base de datos no CDB es compatible y puede continuar con el paso siguiente.

    Si la salida es NO, la base de datos que no es CDB no es compatible y puede comprobar la PDB_PLUG_IN_VIOLATIONS ver para ver por qué no es compatible. Todas las violaciones deben corregirse antes de continuar. Por ejemplo, cualquier error de coincidencia de versión o parche debe resolverse ejecutando una actualización o la utilidad opatch. Después de corregir las violaciones, ejecute DBMS_PDB.CHECK_PLUG_COMPATIBILITY De nuevo para asegurarse de que la CDB no es compatible con la CDB.

  7. Conecte la instancia única que no es CDB.

    CREATE PLUGGABLE DATABASE ncdb USING '/home/oracle/ncdb.xml'
      COPY
      FILE_NAME_CONVERT = ('/disk1/oracle/dbs/', '/disk2/oracle/ncdb/')
    ;
    Nota Si no hay espacio suficiente en el host, el NOCOPY Se puede usar la opción para crear la PDB. En ese caso, no se puede utilizar una sola instancia que no sea CDB después del plugin como una PDB debido a que se usaron los archivos de datos originales para la PDB. Asegúrese de crear una copia de seguridad antes de la conversión para que haya algo que volver a caer en caso de que algo vaya mal.
  8. Empiece con la actualización de PDB después de la conversión si la versión entre la base de datos no CDB de instancia única de origen y la CDB de destino son diferentes. Para la conversión de la misma versión, se puede omitir este paso.

    sqlplus / as sysdba;
    alter session set container=ncdb
    alter pluggable database open upgrade;
    exit;
    dbupgrade -c ncdb -l /home/oracle

    Revise el archivo de registro de actualización en la /home/oracle directorio.

  9. Abra la base de datos conectable, compruebe las violaciones del plug-in pdb y vuelva a compilar los objetos no válidos.

    alter pluggable database ncdb open;
    alter session set container=ncdb;
    select message from pdb_plug_in_violations where type like '%ERR%' and status <> 'RESOLVED';
    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -c 'ncdb' -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql
  10. Ejecución noncdb_to_pdb.sql para actualizar el diccionario de datos.

    sqlplus / as sysdba
    alter session set container=ncdb;
    @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql;

    Cierre y reinicie la base de datos del contenedor. la ncdb se sale del modo restringido.

Migrar bases de datos de Oracle locales a Azure con la reubicación de PDB

La reubicación de la PDB de Oracle con la opción de máxima disponibilidad emplea la tecnología de clonado en caliente de PDB, lo que permite la disponibilidad de PDB de origen mientras la PDB se copia en el destino. En el switchover, las conexiones de usuario se redirigen automáticamente a la PDB de destino. Por lo tanto, el tiempo de inactividad se minimiza de manera independiente del tamaño de la PDB. NetApp proporciona un kit de herramientas basado en Ansible que automatiza el procedimiento de migración.

  1. Cree una CDB en el cloud público de Azure en una máquina virtual de Azure con el mismo nivel de versión y revisión.

  2. Desde la controladora de Ansible, clone una copia del kit de herramientas de automatización.

    git clone https://github.com/NetApp-Automation/na_ora_aws_migration.git
  3. Lea la instrucción del archivo README.

  4. Configure los archivos variables de host de Ansible para los servidores Oracle de origen y de destino y el archivo de configuración del host del servidor de base de datos para la resolución de nombres.

  5. Instale los requisitos previos de la controladora Ansible en la controladora Ansible.

    ansible-playbook -i hosts requirements.yml
    ansible-galaxy collection install -r collections/requirements.yml --force
  6. Ejecute las tareas previas a la migración en el servidor local.

    ansible-playbook -i hosts ora_pdb_relocate.yml -u admin -k -K -t ora_pdb_relo_onprem
    Nota El usuario admin es el usuario de gestión en el host del servidor Oracle local con privilegios sudo. El usuario administrador se autentica con una contraseña.
  7. Ejecute la reubicación de PDB de Oracle desde las instalaciones al host de Oracle de Azure de destino.

    ansible-playbook -i hosts ora_pdb_relocate.yml -u azureuser --private-key db1.pem -t ora_pdb_relo_primary
    Nota La controladora de Ansible puede ubicarse tanto en las instalaciones como en el cloud de Azure. La controladora necesita conectividad al host del servidor de Oracle local y al host de Oracle VM de Azure. El puerto de la base de datos de Oracle (como 1521) está abierto entre el host del servidor de Oracle local y el host de Oracle VM de Azure.

Opciones de migración de bases de datos de Oracle adicionales

Consulte la documentación de Microsoft para obtener más opciones de migración: "Proceso de decisión de migración de bases de datos de Oracle".