Recuperación de Una Tabla Desde un Respaldo RMAN en Oracle

Transcripción

Recuperación de Una Tabla Desde un Respaldo RMAN en Oracle
Newsletter – Diciembre 2013
Contenido
Página:
Recuperación de Una Tabla Desde un
Respaldo RMAN en Oracle Database 12c
Por Ing. Luis Fernando Alonzo
[email protected]
1 Recuperación de Una Tabla
Desde un Respaldo RMAN
en Oracle Database 12c
3 Migración de Base de Datos
Hacia ASM
En diferentes escenarios y con diversos clientes, se ha visto la necesidad de
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
proceso puede ser largo, propenso a errores, y en ciertos escenarios complicado
de recuperar, además que requiere conocimientos sólidos del utilitario RMAN
(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
entre otras razones, es necesario recurrir a un respaldo RMAN para
5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torreobjeto,
II, Nivel 12
recuperar uno o varios objetos.
Francisco Barrundia
Teléfono: (502)2364-5300Fax: (502)2364-5311
Alejandro Lau
[email protected]
Debbie Morán
Veamos la restauración de una tabla, en versión 11gR2 o inferior de Pagina
base de1/10
datos
Oracle, a través de un respaldo RMAN. Luego comparemos la nueva característica
disponible en 12c para el mismo escenario.
Autores
Contribuyentes
Luis Alonzo
Alejandro Lau
Manuel Carrillo
Restauración de tabla en 11gR2 con respaldo RMAN
1. Obtener respaldo RMAN de la base de datos, la cual debe estar en modo
ARCHIVELOG. Se requerirán archivelogs para recuperar el objeto, a una fecha
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 1
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 2
Migración de Base de Datos Hacia ASM
Por Ing. Alejandro Lau
[email protected]
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
'/u01/oradata/orcl10g/control01.ctl';
to
'+DATA'
from
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 3
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
[email protected]
5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 4
Instalación de Swingbench
Por Ing. Manuel Carrillo
[email protected]
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 5
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 6
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 7
Con paralelismo (6 CPUs)
Compressión for Query
Con archivelog
Compresión
Tiempo
(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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 8
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
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 9
Sin paralelismo
5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12
PBX (502) 2364-5300 Fax (502) 2364-5311
[email protected]
Página 10

Documentos relacionados