martes, 3 de marzo de 2009

RMAN Recovery Catalog

El recovery catalog es un repositorio de metadatos de los respaldos con RMAN. El recovery catalog se crea en un esquema de usuario en alguna base de datos Oracle, y no es mas que un conjunto de paquetes, tablas, índices y vistas.
Los datos en estas tablas se refrescan con información del control file a través del comando resync.
Por eso el recovery catalog es opcional, ya que la información a fin de cuentas es proporcionada por el controlfile.
La diferencia es que un catálogo de rman puede contener la información de todas las bases de datos que deseemos, y el controlfile solo contiene información de su propia base de datos.

Es sencillo crear el catálogo, sigamos unos cuantos pasos:

1.En alguna base de datos creamos el esquema dueño del catálogo, por tradición el esquema se nombra “rman” sin embargo puede ser algún otro esquema en la base de datos.
Para evitar confusiones yo nombré al usuario “catowner”.



SQL> create user catowner identified by catowner
2 default tablespace catownertbs
3 quota unlimited on catownertbs;

User created.





2.Al esquema seleccionado, se le otorga el permiso recovery_catalog_owner:




SQL> grant recovery_catalog_owner to catowner;
Grant succeeded.




3.Ahora vamos a crear el catálogo, para eso nos conectamos a rman y al esquema para catálogo que recién creamos:



C:\>rman
Recovery Manager: Release 10.1.0.4.2 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.

RMAN> connect catalog catowner/catowner@OAS
connected to recovery catalog database
recovery catalog is not installed
RMAN>




4.Como podemos ver, nos manda un mensaje RMAN diciendo que el recovery catalog no está instalado. Vamos a crearlo:



RMAN> connect catalog catowner/catowner@OAS
connected to recovery catalog database
recovery catalog is not installed

RMAN> create catalog;
recovery catalog created




5.A continuación, registramos la base de datos primary en el catálogo:



RMAN> connect target "sys/contraseña@primary"
connected to target database: PRIMARY (DBID=1517448076)

RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
RMAN>



6.Como podemos observar, se hizo un resync completo, es decir se refrescaron las tablas del catálogo con información del controlfile.

7.Ahora podemos crear un sencillo respaldo a disco, utilizando nuestro catálogo.



C:\>rman target / catalog="catowner/catowner@OAS"

Recovery Manager: Release 10.1.0.4.2 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
connected to target database: PRIMARY (DBID=1517448076)
connected to recovery catalog database

RMAN> run{
allocate channel c1 type disk format 'D:\backup\pimary\bkpriamry_%U.bk';
backup database plus archivelog;
release channel c1;
}




8.Es muy importante que sepamos realizar los respaldos, pero mas importante que podamos recuperar nuestra base de datos cuando sea necesario.
Una tarea de vital importancia es asegurarnos que nuestros respaldos sean efectivos, para eso contamos con el comando “restore database validate” El cual revisa si es posible en un momento dado restaurar la base de datos con los respaldos que tenemos, sin físicamente restaurarla, es decir, el comando simplemente simula si podemos restaurar la base de datos.



RMAN> restore database validate;

Starting restore at 03-MAR-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=124 devtype=DISK
channel ORA_DISK_1: starting validation of datafile backupset
channel ORA_DISK_1: restored backup piece 1
piece handle=D:\BACKUP\PIMARY\BKPRIAMRY_0LK902OJ_1_1.BK tag=TAG20090303T114418
channel ORA_DISK_1: validation complete
Finished restore at 03-MAR-09
RMAN>





Al no marcar error, podemos estar seguros de que nuestro respaldo es funcional para el caso de una restauración.

9.Si quisiéramos ver cuáles respaldos RMAN utilizaría en caso de una recuperación contamos con el comando “restore database preview”:



RMAN> restore database preview ;

Starting restore at 03-MAR-09
using channel ORA_DISK_1


List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
647 Full 543M DISK 00:01:25 03-MAR-09
BP Key: 653 Status: AVAILABLE Compressed: NO Tag: TAG20090303T114418

Piece Name: D:\BACKUP\PIMARY\BKPRIAMRY_0LK902OJ_1_1.BK
List of Datafiles in backup set 647
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 392974 03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\SYSTEM01.DBF
2 Full 392974 03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\UNDOTBS01.DBF
3 Full 392974 03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\SYSAUX01.DBF
4 Full 392974 03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\USERS01.DBF
Finished restore at 03-MAR-09

RMAN>




En un post siguiente escribiré sobre la base de datos auxiliar y como hacer una clonación en caliente.

5 comentarios:

  1. Hola Erika, revisando tu blog, es muy práctico lo que muestras y fácil de entender me gustó...
    estaré visitandote frecuentemente.

    ResponderEliminar
  2. Se debe siempre usar un catalogo o no es necesario?

    ResponderEliminar
  3. Hola Anónimo, no es necesario el catàlogo, es solo una recomendación.
    Si no usas el catàlogo, se usa el controlfile.

    ResponderEliminar
  4. Hola Espero estes bien una pregunta;
    Ya tengo mis bases respaldadas con RMAN y tengo los archivos que genera (*.BK) se pretenda migrar los datos a un servidor nuevo, es decir iniciar todo desde cero, mi pregunta es si solo con estos archivos puedo recuperar mis bases


    Espero me puedas ayudar
    Saludos,

    ResponderEliminar
  5. Hola amigo
    Con los archivos de un respaldo completo de la base de datos la puedes recuperar de cero, debes estar seguro de contar con el respaldo del controlfile

    saludos

    ResponderEliminar