Oracle Database 12c: Transporte de “Tablespaces” de “11.2.0.3” a “12.1” ( Parte III )

Por Joel Pérez y Mahir M. Quluzade (OCP)
Publicado en Febrero 2014

Índice de contenidos

1. Transporte de “Tablespaces” (Multiplataforma) (Parte I)
2. Transporte de “Tablespaces” (Multiplataforma) (Parte II)
3. Transporte de “Tablespaces” de “11.2.0.3” a “12.1” ( Parte III )

Se pudiera clasificar 2 eras de “Transportable Tablespaces”:

  • Era “12c”: En la era “12c” el transporte de los “Tablespaces” se puede realizar de la manera tradicional explicada anteriormente mas sin embargo existe una nueva funcionalidad la cual esta basada en transporte de “Tablespaces” basados en “RMAN backups” consistentes y no consistentes.
  • Era ”Pre-12c”: en la era pre “12c” el transporte de “Tablespaces” no se podía llevar a cabo con “RMAN Backups”. El transporte físico de los “Datafiles” se llevaba a cabo a través de procesos manuales de sistema operativo o a través de “RMAN Image copies”. Esto dentro de otras características poseía la gran desventaja de que el “Datafile” debía ser copiado de forma entera. En “12c” al poseer la característica de que el traslado pueda realizarse a través de “RMAN Backups”, genera la gran ventaja de que el transporte de los “Datafiles” ahora puede llevarse a cabo con menor capacidad, trayendo consigo ventajas de reducción de “Overhead” en la red, dispositivos de cinta y/u otros.

Los 3 artículos: Oracle Database 12c: Transporte de “Tablespaces” de “11.2.0.3” a “12.1” ( Parte I, II & III ), estarán basados en el método tradicional de transporte de “Tablespaces” mas con la salvedad principal de probar la característica en modo: Multi-Version & Multi-Plataforma al mismo tiempo entre “11.2.0.3” y “12.1”.

  • Parte I: entre sistemas operativos idénticos & Conversión en el origen
  • Parte II: entre sistemas operativos heterogéneos & Conversión en el origen
  • Parte III: entre sistemas operativos heterogéneos & Conversión en el destino

Iniciemos la ejecución del ejemplo para el presente articulo ( Parte I )

Objetivo/Descripcion de escenario

  • Transporte de “Tablespaces” en modo tradicional Multi-Version ( 11.2.0.3 a 12.1.0.1.0 ), Multi-Plataforma (“Windows x64” a “Oracle Linux x64” ) con conversión de “Datafiles” en el origen

Versión de manejador en el Origen

  • 11.2.0.3

Versión de manejador en el Destino

  • 12.1.0.1.0

Sistema Operativo Origen

  • “Windows x64”

Sistema Operativo Destino

  • “Oracle Linux x64”

Herramienta(s) a ser utilizadas

  • “Data Pump Export/Import” & SQL*Plus

Conversión de “Datafiles”

  • En el origen

BBDD origen

  • “db11g”

BBDD destino

  • “db12c”

“Tablespace” a Transportar

  • “DATAAPP”

 

Reconocimiento del ambiente, creación de “Application Data” y establecimiento en modo “Read-Only” el “Tablespace” a transportar

C:\Users\Administrator>set ORACLE_SID=db11g
C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 23:46:20 2013
Copyright (c) 1982, 2010, Oracle.  All rights reserved.

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

SQL> create tablespace DATAAPP datafile 
'C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB1
1G\DATAAPP01.DBF' SIZE 50M AUTOEXTEND ON;

Tablespace created.

SQL> alter tablespace DATAAPP add datafile 
'C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB1
1G\DATAAPP02.DBF' SIZE 50M AUTOEXTEND ON;

Tablespace altered.

SQL> create user MyUser identified by MyUser
  2  default tablespace dataapp
  3  quota unlimited on dataapp;

User created.

SQL> grant create session, resource , dba to MyUser;

Grant succeeded.

SQL> conn MyUser/MyUser
Connected.
SQL>
SQL> create table t(n number);

Table created.

SQL> insert into t values(2);

1 row created.

SQL> commit;
 
Commit complete.

SQL> select *  from t;

     N
----------
     2

SQL> alter tablespace dataapp read only;

Tablespace altered.

Conversión de “Tablespace” en el origen

C:\Users\Administrator>set ORACLE_SID=db11g

C:\Users\Administrator>rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Fri Jul 26 00:00:54 2013

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

connected to target database: DB11G (DBID=291349420)

RMAN> CONVERT TABLESPACE DATAAPP
2> TO PLATFORM 'Linux x86 64-bit'
3> FORMAT 'C:\Transport2\%U';

Starting conversion at source at 26-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=59 device type=DISK
channel ORA_DISK_1: starting datafile conversion
input datafile file number=00008 name=C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB11G\
DATAAPP01.DBF
converted datafile=C:\TRANSPORT2\DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-8_01OFL
QS2
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile conversion
input datafile file number=00009 name=C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB11G\
DATAAPP02.DBF
converted datafile=C:\TRANSPORT2\DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-9_02OFL
QSA
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:07
Finished conversion at source at 26-JUL-13

RMAN>

Obtención de “Metadata” para el transporte ( Uso de expdp ). Es de alta importancia establecer el parámetro “VERSION=11.2”

C:\Users\Administrator>expdp dumpfile=data_pump_dir:dataapp_dump.dmp transport_t
ablespaces=dataapp transport_full_check=y VERSION=11.2

Export: Release 11.2.0.1.0 - Production on Fri Jul 26 00:06:32 2013

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

Username: sys as sysdba
Password:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit
Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  sys/******** AS SYSDBA dumpfile=d
ata_pump_dir:dataapp_dump.dmp transport_tablespaces=dataapp transport_full_check
=y VERSION=11.2
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:
  C:\ORACLE\APP\ADMINISTRATOR\ADMIN\DB11G\DPDUMP\DATAAPP_DUMP.DMP
******************************************************************************
Datafiles required for transportable tablespace DATAAPP:
  C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB11G\DATAAPP01.DBF
  C:\ORACLE\APP\ADMINISTRATOR\ORADATA\DB11G\DATAAPP02.DBF
Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 00:07:08

Copia de “Datafiles” y “Export Dump File” al “Hardware Server” destino

[oracle@oel62-ora12c Transport2]$ ls -l
total 102500
-rw-r--r-- 1 oracle oinstall    86016 Jul 26 12:08 DATAAPP_DUMP.DMP
-rw-r--r-- 1 oracle oinstall 52436992 Jul 26 12:08 
DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-8_01OFLQS2
-rw-r--r-- 1 oracle oinstall 52436992 Jul 26 12:08 
DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-9_02OFLQSA
[oracle@oel62-ora12c Transport2]$ pwd
/tmp/Transport2

    

Copia de “Datafiles” y “Export Dump Files” al al “Hardware Server” destino

[oracle@oel62-ora12c Desktop]$ cd /tmp/Transport2
[oracle@oel62-ora12c Transport2]$ ls -l
total 102500
-rw-r--r-- 1 oracle oinstall    86016 Jul 26 12:08 DATAAPP_DUMP.DMP
-rw-r--r-- 1 oracle oinstall 52436992 Jul 26 12:08 
DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-8_01OFLQS2
-rw-r--r-- 1 oracle oinstall 52436992 Jul 26 12:08 
DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-9_02OFLQSA
[oracle@oel62-ora12c Transport2]$ cp DATAAPP_DUMP.DMP /u01/app/oracle/admin/db12c/dpdump/
[oracle@oel62-ora12c Transport2]$ cp DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-8_01OFLQS2 /
u01/app/oracle/oradata/db12c/DATAAPP01.DBF
[oracle@oel62-ora12c Transport2]$ cp DATA_D-DB11G_I-291349420_TS-DATAAPP_FNO-9_02OFLQSA /
u01/app/oracle/oradata/db12c/DATAAPP02.DBF
 [oracle@oel62-ora12c Transport2]$ 
[oracle@oel62-ora12c Transport2]$ cd /u01/app/oracle/oradata/db12c/
[oracle@oel62-ora12c db12c]$ ls -l
total 2648824
-rw-r----- 1 oracle oinstall 104865792 Jul 26 11:31 APPDATA01.DBF
-rw-r----- 1 oracle oinstall 104865792 Jul 26 11:31 APPDATA02.DBF
-rw-r----- 1 oracle oinstall  10043392 Jul 26 12:11 control01.ctl
-rw-r--r-- 1 oracle oinstall  52436992 Jul 26 12:11 DATAAPP01.DBF
-rw-r--r-- 1 oracle oinstall  52436992 Jul 26 12:11 DATAAPP02.DBF
-rw-r----- 1 oracle oinstall 338829312 Jul 26 09:44 example01.dbf
-rw-r----- 1 oracle oinstall  52429312 Jul 26 12:11 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Jul 26 09:44 redo02.log
-rw-r----- 1 oracle oinstall  52429312 Jul 26 09:44 redo03.log
-rw-r----- 1 oracle oinstall 817897472 Jul 26 12:11 sysaux01.dbf
-rw-r----- 1 oracle oinstall 817897472 Jul 26 12:11 system01.dbf
-rw-r----- 1 oracle oinstall  92282880 Jul 26 11:30 temp01.dbf
-rw-r----- 1 oracle oinstall 173023232 Jul 26 12:11 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 Jul 26 09:44 users01.dbf
[oracle@oel62-ora12c db12c]$

    

 Reconocimiento de BBDD destino

[oracle@oel62-x64 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome/
[oracle@oel62-x64 ~]$ export PATH=$ORACLE_HOME/bin:$PATH
[oracle@oel62-x64 ~]$ export ORACLE_SID=db12c
[oracle@oel62-x64 ~]$ 
[oracle@oel62-x64 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 26 14:53:11 2013

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE	12.1.0.1.0	Production
TNS for Linux: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 - Production

SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS

    

Creación de usuario necesario para realizar la tarea de “Import” de “Metadata” e “Import” propiamente

[oracle@oel62-ora12c db12c]$ export ORACLE_SID=db12c
[oracle@oel62-ora12c db12c]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 26 12:13:09 2013

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real 
Application Testing options

SQL> create user MyUser identified by MyUser;

User created.

SQL> grant create session, resource, dba to MyUser;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition 
Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real 
Application Testing options

[oracle@oel62-ora12c db12c]$ impdp dumpfile=data_pump_dir:DATAAPP_DUMP.DMP
 transport_datafiles='/u01/app/oracle/oradata/db12c/DATAAPP01.DBF',
'/u01/app/oracle/oradata/db12c/DATAAPP02.DBF' version=12.1

Import: Release 12.1.0.1.0 - Production on Fri Jul 26 12:14:27 2013

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

Username: sys as sysdba
Password: 

Connected to: Oracle Database 12c Enterprise Edition 
Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application 
Testing options
Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Source TSTZ version is 11 and target TSTZ version is 18.
Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  sys/******** AS SYSDBA 
dumpfile=data_pump_dir:DATAAPP_DUMP.DMP transport_datafiles=/u01/app/oracle/
oradata/db12c/DATAAPP01.DBF,/u01/app/oracle/oradata/db12c/DATAAPP02.DBF version=12.1 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Fri Jul 26 12:14:37 2013 
elapsed 0 00:00:04

[oracle@oel62-ora12c db12c]$

    

Verificando el transporte del “Tablespace”, apertura en modo “Read-Write” del “Tablespace” transportado y su contenido

[oracle@oel62-ora12c db12c]$ export ORACLE_SID=db12c
[oracle@oel62-ora12c db12c]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 26 12:14:55 2013

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select tablespace_name, status  from dba_tablespaces;

TABLESPACE_NAME 	       STATUS
------------------------------ ---------
SYSTEM			       ONLINE
SYSAUX			       ONLINE
UNDOTBS1		       ONLINE
TEMP			       ONLINE
USERS			       ONLINE
EXAMPLE 		       ONLINE
APPDATA 		       ONLINE
DATAAPP 		       READ ONLY

8 rows selected.

SQL> alter tablespace dataapp read write;

Tablespace altered.

SQL> conn MyUser/MyUser
Connected.

SQL> select *  from t;

	 N
----------
	 2

    

De esta manera hemos comprobado el transporte de “Tablespaces” en modo Multi-Version y Multi-Plataforma con conversión en el origen. La conversión en origen implica un “overhead” en el mismo mas el “offload” de conversión en el destino.

 


Joel es un experto DBA con más de 12 años de experiencia, especializado en bases de datos con especial énfasis en la soluciones de alta disponibilidad (RAC, Data Guard, y otras). Es un conferencista habitual en eventos de Oracle como: OTN LAD TOUR y otros. Consultor Internacional con trabajos en más de 20 países alrededor del mundo. Fue el primer latinoamericano en ser nombrado "Experto OTN" en el año 2003, Oracle ACE año 2004 y actualmente Oracle ACE Director.

Mahir es un Senior DBA con mas de 10 anos de experiencia en bases de datos Oracle con especial foco en “High Availability” & “Disaster Recovery Solutions (RAC, Data Guard, RMAN,…)”. Mahir actualmente trabaja en el “Central Bank of the Republic of Azerbaijan”. El es OCP DBA. Mahir es frecuente orador en el “Azerbaijan Oracle User Group (AZEROUG)”.