sábado, 28 de marzo de 2009

BBED en Windows

BBED es un Editor binario de bloques, con el cual podemos examinar los bloques de Oracle en los datafiles.

Es una utilería poco publicitada ya que está reservada para uso interno de Oracle, y con un mal uso de la misma podemos corromper la base de datos.

Este post no está orientado a escribir sobre cómo utilizar bbed, para eso existe un buen documento en Internet hecho por Graham Thornton “Dissassembling the data block”.

Para poder usar bbed en linux se tiene que ligar la utilería, la cual todavía se puede obtener en distribuciones recientes de Oracle..
Sin embargo en Windows venía como un ejecutable (bbed.exe) que se encontraba en ORACLE_HOME\bin, hasta la versión 8 de Oracle, desde la versión 9 ya no viene el ejecutable.

Si tienen a la mano una instalación de Oracle versión 8, pueden buscar las librerías que listo a continuación y copiarlas al directorio ORACLE_HOME\bin de su Oracle 10g o 9i, y así podremos usar bbed versión 8 en las versiones 9 y 10 de Oracle.

Estos son los archivos necesarios:

Bbed.exe
Oran8.dll
Oranl8.dll
Oranldap8.dll
Orannzsbb8.dll
Oracore8.dll
Oranls8.dll
Orageneric8.dll
Oracommon8.dll
Oraclient8.dll
Oravsn8.dll
Orawtc8.dll
Oranro8.dll
Orapls8.dll
Oraslax8.dll
Orasql8.dll
Oraldapclnt8.dll
Oratrace8.dll
Orancrypt8.dll
Oranhost8.dll
Oranoname8.dll
Orancds8.dll
Orantns8.dll
Orannds8.dll




Y así finalmente puedo utilizar bbed en windows!

C:>bbed
Password:

BBED: Release 2.0.0.0.0 - Limited Production on Sat Mar 28 23:52:45 2009

(c) Copyright 2000 Oracle Corporation. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************

BBED>



Recordemos que BBED debe de usarse únicamente en bases de datos de pruebas y solo es soportado por Oracle si lo realiza alguien de su mismo staff.


PD: Si alguien necesita los binarios y librerías, me pueden mandar un correo y se las comparto.

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.