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”:
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”.
Iniciemos la ejecución del ejemplo para el presente articulo ( Parte I )
Objetivo/Descripcion de escenario |
|
Versión de manejador en el Origen |
|
Versión de manejador en el Destino |
|
Sistema Operativo Origen |
|
Sistema Operativo Destino |
|
Herramienta(s) a ser utilizadas |
|
Conversión de “Datafiles” |
|
BBDD origen |
|
BBDD destino |
|
“Tablespace” a Transportar |
|
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)”.