Cómo Migrar una Instancia de Base de Datos Oracle On-Premise a Oracle Cloud Usando Data Pump Full Transportable

Por Joel Pérez Oracle ACE director, Skant Gupta Oracle ACE & César Aguilar
Publicado en Mayo 2018

Revisado por Diana Patino



Antes de comenzar, tal vez quieras conocer otros métodos para migrar una Base de Datos Oracle On-Premise a Oracle Cloud:
Usando Data Pump Transportable Tablespace
Desde una on-premise PDB, usando Remote Cloning
Desde una on-premise (Non-CDB), usando Remote Cloning
Usando RMAN Cross-Platform Transportable PDB


Este método puede ser usado bajo dos condiciones: la primera es que la base de datos sea versión 11.2.0.3 o superior, adicionalmente el “character sets” de la base de datos on-premise y del Oracle Database Cloud Service deben ser compatibles.

El método Data Pump Full Transportable puede ser usado para copiar toda la base de datos desde nuestro servidor on-premise hacia el Oracle Database Cloud Service.

Para migrar una base de datos Oracle 11g on-premise hacia una base de datos 12c en el Database Cloud Service usando el método Data Pump Full Transportable, se deben realizar las siguientes tareas:

En el servidor de base de datos on-premise:

1. Prepare la base de datos para el Export Data Pump Full Transportable, colocando los tablespaces definidos en modo READ ONLY.

2. Invoque el Data Pump Export para realizar el Export Full Transportable.

3. Use un utilitario de copia segura (SCP) para transferir el archivo dump del Data Pump Export y los datafiles de todos los tablespaces definidos para el nodo del Database Cloud Service.

4. Coloque los tablespaces en modo READ WRITE en la base de datos on-premise.

4.1 En el paso 5 podemos comenzar a trabajar en la Base de Datos Cloud Service, pero primero debemos crear una nueva instancia.



Crear  una Base de Datos Cloud Service


Ingrese a la cuenta del Oracle Cloud, diríjase a la página "Oracle Database Cloud Service" y cree un nuevo servicio.

  • En Service Name, ingresar Cloud-Mig.
  • En Service Level, seleccionar Oracle Database Cloud Service.
  • En Metering Frequency, seleccionar la frecuencia apropiada para el ambiente.
  • En Software Release, seleccionar Oracle Database 12c Release1.
  • En Software Edition, seleccionar Enterprise Edition.
  • En Database Type, seleccionar Single Instance.

Presione click en Next para continuar.


Figura1. Creando un nuevo servicio (Cloud-Mig)




2. En la pantalla de Service Details, realizar lo siguiente:

  • Para el DB Name (SID), ingresar MIGORCL.
  • Ingrese un Administrative Password deseado y confirme la contraseña (esta será la contraseña del sys).
  • En Usable Database Storage (GB), ingresar 25.
  • Para el Compute Shape, seleccionar OC3 -1 OCPU, 7.5GB RAM (este es el mínimo requerido).
  • Para SSH Public Key, ingresar rsa-key-20170111.pub.

Presione click en Next para continuar.


Figura 2. Especificando los detalles del servicio




3. Finalmente, revise la configuración y de click en Create para crear la base de datos primaria en la nube.


Figura 3. Creando la instancia de base de datos en la nube.


Después de unos pocos minutos, visualizará que la instancia de base de datos en la nube ha sido creada satisfactoriamente.


Figura 4. La base de datos primaria ha sido creada.




4. PresioneClick en service name (Cloud-Mig) para abrir la página principal de la base de datos.


Figura 5. Página principal de la base de datos cloud




5. Antes de tratar de conectarse a la instancia de base de datos primaria en la nube, se debe habilitar el dblistener en la sección Access Rules, haciendo lo siguiente:

a. Abrir el servicio de la base de datos y seleccionar Access Rules del menú.


Figura 6. Seleccionando la opción Access Rules


b. Para la regla ora_p2_dblistener, seleccione Enable del menú Actions.


Figura 7. Habilitando la regla ora_p2_dblistener




Conexión a la Base de Datos Cloud


Abra dos instancias diferentes de PuTTY y conéctese a los dos equipos usando la llave pública SSH.


Figura 8. Conexión a los dos equipos usando PuTTY

 



En el nodo del Database Cloud Service


  • Prepare la base de datos para el Tablespace Import.

  • Invoque el Data Pump Import y conéctese a la base de datos.

  • Después de verificar que los datos han sido importados satisfactoriamente, se puede borrar el archivo dump.



Data Pump Full Transportable: Ejemplo


El siguiente ejemplo es una demostración paso a paso de las tareas requeridas para migrar una Base de Datos Oracle 11g  hacia una Base de Datos Oracle Database Cloud Service 12c.

La Base de Datos Fuente está en un servidor Linux.


En el servidor de Base de Datos fuente:

1. Prepare la base de datos para el Export Data Pump Full Transportable.


a. Cree un directorio en el Sistema operativo para el export.


 [oracle@cloud ~]$ mkdir -p /u01/app/dpump

[oracle@cloud ~]$


b. Invoque el SQL*Plus e ingrese a la Base de Datos fuente con el usuario SYSTEM.


 [oracle@cloud ~]$ sqlplus SYSTEM

SQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 1 01:49:18 2017

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Enter password:

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the
Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>


c. Cree un directorio en la Base de Datos para referenciar el directorio del Sistema operativo.


 SQL> CREATE DIRECTORY prem_to_cloud AS '/u01/app/dpump';

Directory created.

SQL>


d. Determine los nombres de los tablespaces y datafiles que pertenecen a los tablespaces definidos mediante una consulta a la vista DBA_DATA_FILES. Estos archivos también serán listados en la salida del export.


 SQL> SELECT tablespace_name, file_name FROM dba_data_files;

TABLESPACE_NAME FILE_NAME
------------------------------ -----------------------------
USERS /u01/app/oracle/oradata/ORA11G/users01.dbf
UNDOTBS1 /u01/app/oracle/oradata/ORA11G/undotbs01.dbf
SYSAUX /u01/app/oracle/oradata/ORA11G/sysaux01.dbf
SYSTEM /u01/app/oracle/oradata/ORA11G/system01.dbf
EXAMPLE /u01/app/oracle/oradata/ORA11G/example01.dbf


SQL>


e. Coloque todos los tablespaces que serán transportados en modo READ ONLY.


 SQL> ALTER TABLESPACE example READ ONLY;

Tablespace altered.

SQL> ALTER TABLESPACE users READ ONLY;

Tablespace altered.

SQL>


f. Salgadel SQL*Plus.





2. Invoque el Data Pump Export para realizar el Full Transportable Export. Especificar FULL=y  y TRANSPORTABLE=always. Debido a que la Base de Datos Oracle es 11g y Full Transportable es una característica de la Base de Datos Oracle 12c, se debe especificar VERSION=12.

 [oracle@cloud ~]$ expdp system FULL=y TRANSPORTABLE=always VERSION=12 DUMPFILE=expdat.dmp 
DIRECTORY=prem_to_cloud


Export: Release 11.2.0.4.0 - Production on Thu Jun 1 01:56:24 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Password:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit
Production With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYSTEM"."SYS_EXPORT_FULL_01": system/******** FULL=y TRANSPORTABLE=always
VERSION=12 DUMPFILE=expdat.dmp DIRECTORY=prem_to_cloud




3. Use un utilitario de copia segura (SCP) para transferir el archivo dump del Data Pump Export y los datafiles de todos los tablespaces definidos para el nodo del Database Cloud Service.

En este ejemplo, el archivo dump es copiado para el directorio /u01. Elija la ubicación apropiada basada en el tamaño del archivo que será transferido.

a. En el nodo del Database Cloud Service, cree un directorio para el archivo dump.


 [oracle@Cloud-Mig ~]$ mkdir -p /u01/app/on_premise

[oracle@Cloud-Mig ~]$


b. Antes de usar el utilitario SCP para copiar los archivos, se debe asegurar que está disponible la llave privada SSH proporcionada para acceder al nodo del Database Cloud Service.


c. Use el utilitario scp para transferir el archivo dump y todos los datafiles que serán transportados para el nodo en el Database Cloud Service.


 [oracle@cloud ~]$ scp -i rsa-key-20170111.ssh /u01/app/dpump/expdat.dmp 
oracle@129.144.152.30:/u01/app/on_premise


Enter passphrase for key 'rsa-key-20170111.ssh':

expdat.dmp
100% 97MB 121.3KB/s 13:42

[oracle@cloud ~]$ scp -i rsa-key-20170111.ssh
/u01/app/oracle/oradata/ORA11G/users01.dbf
oracle@129.144.152.30:/u02/app/oracle/oradata/MIGORCL/pdb3


Enter passphrase for key 'rsa-key-20170111.ssh':

users01.dbf
100% 5128KB 125.1KB/s 00:41

[oracle@cloud ~]$ scp -i rsa-key-20170111.ssh
/u01/app/oracle/oradata/ORA11G/example01.dbf
oracle@129.144.152.30:/u02/app/oracle/oradata/MIGORCL/pdb3


Enter passphrase for key 'rsa-key-20170111.ssh':

example01.dbf
100% 141MB 183.7KB/s 16:00

[oracle@cloud ~]$




4. Coloque los tablespaces en la fuente de regreso en modo READ WRITE.

a. Invoque el SQL*Plus e ingrese con el usuario SYSTEM.


b. Coloque los tablespaces definidos de regreso en modo READ WRITE.


 SQL> ALTER TABLESPACE example READ WRITE;

Tablespace altered.

SQL> ALTER TABLESPACE users READ WRITE;

Tablespace altered.

SQL>

d. Salga del SQL*Plus




5. En el nodo del Database Cloud Service, prepare la PDB para el tablespace import.

a. En el nodo del Database Cloud Service, invoque el SQL*Plus e ingrese a la PDB como usuario SYSTEM.


b. Cree un directorio en la PDB.


 SQL> CREATE DIRECTORY on_cloud AS '/u01/app/on_premise';

Directory created.

SQL>




6. En el nodo del Database Cloud Service, invoque el Data Pump Import y conéctese a la PDB.

Importe la data a la Base de Datos usando la opción TRANSPORT_DATAFILES.

 [oracle@Cloud-Mig pdb3]$ impdp system@PDB3 FULL=y DIRECTORY=on_cloud \
> TRANSPORT_DATAFILES='/u02/app/oracle/oradata/MIGORCL/pdb3/example01.dbf', \

> '/u02/app/oracle/oradata/MIGORCL/pdb3/users01.dbf'


Import: Release 12.1.0.2.0 - Production on Wed May 31 21:18:45 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

Password:

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options




7. Después de verificar que los datos han sido importados satisfactoriamente, podrá borrar el archivo dump expdat.dmp.




Joel Pérez es un experto DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud & OCM12c/11g) con más de 17 años de experiencia real en el mundo de la tecnología Oracle, especializado en diseño e implementación de soluciones de: Nube, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Orador habitual en eventos internacionales de materia Oracle. Escritor de artículos para OTN español, portugués e Inglés. Joel se desempeña actualmente como: Database Cloud Solution Architect & International Business Manager para la compañía http://en.enmotech.com/ Yunhe Enmo (Beijing) Technology Co. Ltd. Beijing, China. LinkedIn: https://www.linkedin.com/in/sirdbaasjoelperez/ & Joel Pérez’s Blog: http://blog.enmotech.com/

Skant Gupta es un Oracle Certified Professional Cloud, 12c & 11g RAC Certified, se desempeña como Senior DBA en Etisalat, Dubai. Más de 5 años en diversas tecnologías de Oracle, focalizado principalmente en bases de datos, soluciones de alta disponibilidad, weblogic y GoldenGate. Podrá seguirlo en su blog: http://oracle-help.com

César Aguilar es un DBA Oracle Certified Professional Cloud, OCE RAC 11g, OCP12c, OCP/OCA 11g, Oracle Database12c Certified Implementation Specialist, con experiencia en RAC, Data Guard y otras soluciones de alta disponibilidad. Actualmente se encuentra radicado en Ecuador y trabaja para la compañía Refundation Consulting Group “http://www.refundation.com” como Senior DBA

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.