Sunteți pe pagina 1din 10

Newsletter – Diciembre 2013

Recuperación de Una Tabla Desde un


Contenido Respaldo RMAN en Oracle Database 12c
Página: Por Ing. Luis Fernando Alonzo
lalonzo@datum.com.gt
1 Recuperación de Una Tabla
Desde un Respaldo RMAN
En diferentes escenarios y con diversos clientes, se ha visto la necesidad de
en Oracle Database 12c restaurar una base de datos completa o parcial, únicamente para recuperar una
tabla, o un pequeño grupo de tablas. Para quienes lo han realizado, saben que el
3 Migración de Base de Datos proceso puede ser largo, propenso a errores, y en ciertos escenarios complicado
de recuperar, además que requiere conocimientos sólidos del utilitario RMAN
Hacia ASM
(Recovery Manager).

5 Instalación de Swingbench La solución ideal para un escenario de recuperación de una tabla o un objeto de la
base de datos, es utilizar un respaldo realizado con Export Data Pump. Por falla en
el archivo dmp, porque no existe dmp para una fecha en que se desea restaurar el
Editores Generales
5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torreobjeto, entre otras razones, es necesario recurrir a un respaldo RMAN para
II, Nivel 12
Francisco Barrundia recuperar uno o varios objetos.
Teléfono: (502)2364-5300Fax: (502)2364-5311
Alejandro Lau
Email.info@datum.com.gt Veamos la restauración de una tabla, en versión 11gR2 o inferior de Pagina
base de1/10
datos
Debbie Morán Oracle, a través de un respaldo RMAN. Luego comparemos la nueva característica
disponible en 12c para el mismo escenario.
Autores
Contribuyentes Restauración de tabla en 11gR2 con respaldo RMAN

Luis Alonzo
1. Obtener respaldo RMAN de la base de datos, la cual debe estar en modo
Alejandro Lau ARCHIVELOG. Se requerirán archivelogs para recuperar el objeto, a una fecha
Manuel Carrillo y hora específica.
2. Es posible restaurar en el mismo servidor origen, pero el procedimiento es
propenso a errores. Para reducir el riesgo en un ambiente de producción, se
recomienda realizarse en un servidor alterno con la misma plataforma y versión
de Oracle Database.
3. Crear una instancia de base de datos temporal, que servirá únicamente para
restaurar los tablespaces SYSTEM, SYSAUX, UNDO y el que contiene el
objeto a restaurar.

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 1
PBX (502) 2364-5300 Fax (502) 2364-5311
newsletter@datum.com.gt
4. Una vez configurados correctamente los parámetros de la instancia temporal y definidas las
rutas donde se restaurarán el control file, datafiles y online logs, se inicia la instancia en modo
NOMOUNT y se restaura el control file con RMAN. Luego se monta la base de datos.
5. Colocar OFFLINE todos los datafiles que no se van a restaurar.
6. Definir fecha y hora a la que se desea realizar la recuperación, con la cláusula SET UNTIL
TIME en un bloque de RMAN. Realizar la restauración y recuperación.
7. Verificar que existan las rutas y que hay espacio para crear los online logs. En este punto ya
podemos abrir la base de datos en modo lectura/escritura con la opción RESETLOGS.
8. Realizar export de la tabla que deseamos recuperar. Con este archivo, ya podemos realizar un
import en la base de datos origen, con la opción REMAP_SCHEMA.

Restauración de tabla en 12c con respaldo RMAN

Se realiza con la instrucción RECOVER TABLE de RMAN, la cual permite recuperar una o varias
tablas o particiones, utilizando una instancia auxiliar. El proceso es el mismo que en versiones
previas, pero de forma automatizada. Esto reduce la posibilidad de errores.

Se deben cumplir los requisitos siguientes:

1. La base de datos origen debe estar abierta en modo de escritura y en modo ARCHIVELOG.
2. Deben estar disponibles los respaldos RMAN y archivelogs necesarios para la recuperación a
la fecha y hora requerida. En 12c se requiere un tablespace adicional: SYSTEXT.
3. Espacio disponible en ruta auxiliar para la restauración de tablespaces.

El procedimiento es el siguiente:

rman target sys/oracle@t12ccdb log recover_table.log

RMAN> RECOVER TABLE HR."EMPLOYEES" OF PLUGGABLE DATABASE T12CPDB1


UNTIL SEQUENCE 64 thread 1
AUXILIARY DESTINATION '/testcases/SR3-6629539201/rectbl'
REMAP TABLE 'HR'.'EMPLOYEES':'EMPLOYEES2';

En este ejemplo se crea una instancia auxiliar en la ruta indicada, donde se restaurarán
únicamente los datafiles necesarios para la tabla EMPLOYEES en la PLUGGABLE DATABASE
T12CPDB1. Una vez restaurada la base de datos auxiliar, se realiza un export con Data Pump, se
elimina la base de datos auxiliar y se realiza un import a la base de datos indicada.

Para bases de datos que no pertenecen a un Container Database, únicamente se puede generar
un export de la tabla; no es posible importarlo directamente. Lo anterior se logra utilizando las
cláusulas DATAPUMP DESTINATION y DUMPFILE.

En resumen, hay varias mejoras a RMAN en 12c; la presentada en este artículo permite reducir el
tiempo de recuperación y el riesgo a errores humanos.

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 2

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Migración de Base de Datos Hacia ASM
Por Ing. Alejandro Lau
alau@datum.com.gt

En instalaciones de Oracle Database previas a la versión 10g solo tenemos dos opciones para
ubicar los datafiles: filesystem y raw devices. Los filesystems nos brindan mucha flexibilidad en la
administración. Los raw devices ofrecen un rendimiento óptimo para el acceso a los datos, pero la
administración es muy complicada.

A partir de 10g surge una nueva alternativa, Automatic Storage Management o ASM, que ofrece un
rendimiento casi igual a los raw devices, pero sin la complejidad de administración. ASM es un tipo
especial de filesystem que no se puede ver desde el sistema operativo, pero sí desde el Enterprise
Manager, desde el utilitario asmcmd y desde el Recovery Manager (RMAN).

Si contamos con una instalación Oracle Database previa a 10g o 10g sobre filesystem, tenemos la
opción de migrar hacia 10g con ASM. Se recomienda como mínimo contar con un diskgroup para
datos (por ejemplo DATA) y un diskgroup para archivelogs y respaldos (por ejemplo RECO). El
diskgroup RECO se recomienda al menos dos veces más grande que el diskgroup DATA.
En algún caso podríamos necesitar mover la base de datos desde ASM hacia filesystem. Por
ejemplo, si queremos cambiar los discos asociados al ASM, pero tomará varios días y no
queremos una interrupción de servicio tan prolongada.

Moviendo la base de datos hacia ASM

Si tenemos una base de datos 10g ya existente sobre filesystems y queremos moverla
completamente hacia ASM, el procedimiento es sencillo. Asumamos que la base de datos se llama
orcl10g:

1. Crear los diskgroups con la redundancia deseada.


SQL> create diskgroup DATA external redundancy disk 'disk1_name';
SQL> create diskgroup DATA external redundancy disk 'disk1_name';

2. Mover el controlfile con RMAN:


SQL> select name from v$controlfile;
NAME
-------------------------------------------------------------------
/u01/oradata/orcl10g/control01.ctl'

SQL> shutdown immediate


SQL> startup nomount

$ rman target / nocatalog


RMAN> restore controlfile to '+DATA' from
'/u01/oradata/orcl10g/control01.ctl';

Identificar el nombre del controlfile nuevo con ASMCMD:


$asmcmd
ASMCMD> ls DATA/ORCL10G/CONTROLFILE
current.261.639419131

Modificar el parámetro control_files:


SQL>startup nomount

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 3

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
SQL>alter system set
control_files='+DATA/ORCL10G/CONTROLFILE/current.261.639419131'
scope=spfile;
SQL>shutdown immediate

3. Mover la base de datos (datafiles):


RMAN> startup mount;
RMAN> backup as copy database format '+DATA';
RMAN> switch database to copy;

Una vez realizado el comando switch database to copy, los archivos originales quedan como
copias y los nuevos archivos pasan a ser utilizados por la base de datos.
4. Agregar un nuevo archivo temporal y botar el anterior:
RMAN> alter database open;
SQL> alter tablespace TEMP add tempfile '+DATA' SIZE 100M;
SQL> alter database tempfile '/u01/oradata/orcl10g/temp01.dbf' drop;

5. Crear nuevos miembros de logs y botar los anteriores. Supongamos que hay 3 grupos
actualmente:
SQL> alter database add logfile member '+DATA' to group 1;
SQL> alter database add logfile member '+DATA' to group 2;
SQL> alter database add logfile member '+DATA' to group 3;
SQL> alter database drop logfile member 'nombre completo grupo1';
SQL> alter database drop logfile member 'nombre completo grupo2';
SQL> alter database drop logfile member 'nombre completo grupo3';

6. Verificar que todos los archivos han sido movidos hacia ASM:
SQL> select name from v$controlfile
union
select name from v$datafile
union
select name from v$tempfile
union
select member name from v$logfile;

Para mover la base de datos de ASM hacia filesystem se realiza el mismo procedimiento,
cambiando las ubicaciones fuente y destino.

Tip Técnico del Mes

Parametros EXCLUDE e INCLUDE en DataPump

Los parametros EXCLUDE e INCLUDE están disponibles con DataPump (expdp, impdp), los
mismos pueden ser utilizados para limitar lo que se importa o exporta, ya sean tablas,
índices, triggers, funciones…

La sintaxis de estos parámetros es la siguiente:

EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]

INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]

Por Lic. Francisco Barrundia


fbarrundia@datum.com.gt

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 4

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Instalación de Swingbench
Por Ing. Manuel Carrillo
mcarrillo@datum.com.gt

1. Instalar JDK 6:
Editar $JAVA_HOME y ejecutar
"datagenerator":

Abrir archivo de datos de muestra:

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 5

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Seleccionamos la opción "insertar datos directamente a oracle", se presenta la siguiente ventana:

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 6

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
select sum(order_total) from orders
union
select count(1) from (select c.customer_id, cust_first_name, cust_last_name c,
order_date, order_mode, order_total t, t.order_id, unit_price, quantity o,
a.product_id, product_name a, d.language_id, translated_name,
translated_description d, i.quantity_on_hand,i.warehouse_id i, w.warehouse_name,
location_id w
from customers c, orders t, order_items o, product_information a,
product_descriptions d, inventories i, warehouses w
where c.customer_id=t.customer_id and
t.order_id=o.order_id and
o.product_id=a.product_id and
a.product_id=d.product_id and
i.product_id=a.product_id and
i.warehouse_id=w.warehouse_id)

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 7

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Con paralelismo (6 CPUs)

Compressión for Query

Con archivelog

Tiempo
Compresión (minutos)
Nula sin paralelismo 75
Nula con paralelismo 21
For Query con paralelismo 19

For Archive con paralelismo 20

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 8

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Tiempo (minutos)
80
60
40
20
0 Tiempo (minutos)

Eventos mostrados en Enterprise Manager:

Pruebas con base de datos en filesystem local

Con paralelismo

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 9

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt
Sin paralelismo

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 Página 10

PBX (502) 2364-5300 Fax (502) 2364-5311


newsletter@datum.com.gt

S-ar putea să vă placă și