martes, 2 de agosto de 2016

Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte IV )

Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte IV )

Por Joel Pérez y Javier Ruiz (OCP)
Publicado en Enero 2014
Indice
1. Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte I )
2. Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte II )
3. Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte III )
4. Oracle Database 12c: “Upgrade” a “Oracle Database 12c” ( Parte IV )

Continuamos…
En el origen ( 11gR2 ) creamos un directorio para alojar los “Export Dump Files” and “RMAN files”
$mkdir -p /orabkup/dbtest1/dpdump

    
Creando directorio en la BBDD origen para el “Export Job”
SQL>create directory "EXP_DATA_PUMP_DIR"  as '/orabkup/dbtest1/dpdump/';

    
En la base de datos origen se establecen en modo “Read Only” los “Tablespaces” que contienen la “Data” de aplicación ( “USERS” & “SOE” )
SQL> alter tablespace USERS read only;
SQL> alter tablespace SOE read only;


Ejecución de “Full Export” en la BBDD origen con el establecimiento del parámetro “VERSION=12” y el “TRANSPORTABLE=ALWAYS”
$expdp \'sys/temp1234 AS SYSDBA\' full=y job_name=EXPORT_DEV2DB 
dumpfile=datapump_dev2db.dmp DIRECTORY=EXP_DATA_PUMP_DIR 
LOGFILE=export_datapump_dev2db.log VERSION=12 transportable=always

Divise con atención que el “feedback” de la actividad de “Export” indica de forma explicita cuales son “Tablespaces” a exportar y sus respectivos “Datafiles”

Ejecución de “RMAN” para respaldar fisicamente los “Datafile” en “filesystem”. Dicho respaldo se pudiera realizar con diversas técnicas, para el caso presente lo realizaremos con “CONVERT DATAFILE”
$rman target /
run
{
CONVERT DATAFILE '+DATADG/dbtest1/datafile/soe.262.814263143'  
DB_FILE_NAME_CONVERT="+DATADG/dbtest1/datafile/soe.262.814263143","/orabkup/dbtest1
/dpdump/soe.262.814263143" FORMAT='/orabkup/dbtest1/dpdump/soe.262.814263143';
CONVERT DATAFILE '+DATADG/dbtest1/datafile/users.260.814258995'  
DB_FILE_NAME_CONVERT="+DATADG/dbtest1/datafile/users.260.814258995","/orabkup/dbtes
t1/dpdump/users.260.814258995" 
FORMAT='/orabkup/dbtest1/dpdump/users.260.814258995';
} 

    
En el origen los “Tablespaces” pueden retornar a modo “Read-Write”
SQL> alter tablespace USERS read write;
SQL> alter tablespace SOE read write;

    
Creación de Directorio en el “Target Server”
$mkdir -p /orabkup/dbtest1

    
Transferencia de Archivos del “Source Server” al “Target Server”
  • “Datafiles”
  • “Export Dump Files”
$scp -r dpdump oracle@alpddbs002:/orabkup/dbtest1/


En el destino nos conectamos con una “CDB” previamente creada y procedemos a crear una “PDB” para nuestro escenario. Como nuestro objetivo es crear una “PDB” vacía ( respecto a “Tablespaces” de “Data” ) y adecuada para la tarea entonces procedemos a crearla con el siguiente “SQL Statement”

“Feedback” en el “Alert log file” durante y posterior a la creación de nuestra target “PDB” “dev2db”. El “PDB id” otorgado a nuestra “PDB” es “5”, numero que utilizaremos con referencia para visualizar información mas adelante

Apertura de la “PDB dev2db”
SQL> Alter pluggable database dev2db open read write;

    
Visualizando nuestra “PDB dev2db” en modo “Read-Write”, fecha de apertura, medida en “MB” y su respectivo “PDB id”

Desde el “CBD” revisión de los “Datafiles” de la “PDB dev2db”. Tal como puede observarse posee solo 2 “Datafiles” pertenecientes a los 2 “Tablespaces” base de una “PDB”

Creación de Directorio ASM para el almacenamiento de “Datafiles”
$asmcmd -p
ASMCMD>cd dg01
ASMCMD>mkdir DEV2DB


Llegados a este punto utilizaremos “RMAN” para restaurar al “ASM Target” los “Datafiles” traídos desde “Solaris”.
$rman
RMAN>CONNECT TARGET sys/temp1234@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=alpddbs002)(PORT=1521))(CONNECT_DATA=(SID=testdbs)))
RMAN>run
{
CONVERT DATAFILE '/orabkup/dbtest1/dpdump/soe.262.814263143'  
DB_FILE_NAME_CONVERT="/orabkup/dbtest1/dpdump/soe.262.814263143",
"+DG01/dev2db/soe_data_1" FORMAT='+DG01/dev2db/soe_data_1';
CONVERT DATAFILE '/orabkup/dbtest1/dpdump/users.260.814258995'  
DB_FILE_NAME_CONVERT="/orabkup/dbtest1/dpdump/users.260.814258995",
"+DG01/dev2db/users_data_1" FORMAT='+DG01/dev2db/users_data_1';
}


Creación de Directorio en la “PDB dev2db” para operación de “Import”
SQL>CREATE DIRECTORY "IMP_DATA_PUMP_DIR" AS '/orabkup/dbtest1/dpdump/';

    
“Import full” en el cual comprobaremos la funcionalidad objeto del articulo. Para el caso presente renombraremos el “Tablespace” “SOE” a “SOE_DATA” para ejemplificar que a través de esta actividad es oportunidad ideal para renombrar “Tablespaces” si asi fuese deseado.
$/orabase/product/12.1.0/db_1/bin/impdp  \'sys/temp1234@"
(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = alpddbs002)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dev2db)(INSTANCE_NAME=testdbs)))" 
AS SYSDBA\'  full=y dumpfile=datapump_dev2db.dmp DIRECTORY=IMP_DATA_PUMP_DIR 
LOGFILE=import_datapump_dev2db.log VERSION=12 TRANSPORT_DATAFILES=+DG01/dev2db/
soe_data_1,+DG01/dev2db/users_data_1 job_name=imp_dev2db parallel=2 
REMAP_TABLESPACE='SOE':'SOE_DATA'

“Feedback” en el “Alert log” donde se visualiza el “plugging” de los “Tablespaces” transportados:
  • “SOE_DATA”
  • “USERS”

Nos conectamos a la “PDB dev2db” y visualizamos el resultado del transporte realizado enteramente a través de las siguientes pantallas



Y con esto hemos realizado un “Upgrade” con la nueva característica “Full Transportable Export/Import”.

No hay comentarios: