Oracle RAC 11gR2 | ORA-00245: control file backup operation failed

 ORA-00245: Conociendo como ocurre el error

Oracle RAC

Oracle RAC (Photo credit: Fenng(dbanotes))

Desde la version de bases de datos oracle 11gR2 la copia de seguridad del controlfile sucede sin tener que holdear las colas de actualizacion del controlfile.

Cuando tenemos una base en single mode o mejor dicho standalone, esta situacion no cambia para nada.

Ahora si nosotros estamos trabajando en RAC (y debido a la cambios que se realizaron para las versiones de bases de datos 11gR2) provocan que cualquier instancia del cluster pueda escribir en el controlfile de manera instantanea.

Es asi que este snapshot del controlfile debe estar disponible (visible) para todas las instancias.

Por que ocurre el error ?

El snapshot del controlfile debe ser accesible para todos los nodos de una base de datos en RAC y si el snapshot no esta, o hay un error en el dispositivo compartido ocurrira que al momento de la copia de seguridad que realiza el RMAN mostrara un error.

Estos siempre ocurriran cuando tomemos un backup usando sqlplus, tengamos configurado un backup del controlfile como AUTOBACKUP o no poseamos una ubicacion compartida.

Ahora veamos unos ejemplos de errores comunes.

Ejemplo 1:

En un ambiente RAC, el controlfile autobackup falla con el error ORA-0245

Autobackup of controlfile in RMAN is failing with error:
RMAN-571: ===========================================================
RMAN-569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-571: ===========================================================
RMAN-3009: failure of Control File and SPFILE Autobackup command on
ORA_DISK_1 channel at 10/27/2010 15:08:59
ORA-245: control file backup operation failed

Sigue leyendo

RMAN Querys | Monitoring backups status: COMPLETED, START_TIME, END_TIME & TIME TAKE

G RMAN

G RMAN (Photo credit: Joe Mud)

Hoy voy a compartirles un query que nos es de mucha utilidad cuando trabajamos con backups de RMAN y nos encontramos realizando reportes.

Podemos utilizarlo para conocer el tiempo que tardo cada backup segun una determinada fecha y segun el tipo de backup que tomamos.

Los mismos podrián ser DB FULL , ARCHIVELOG , INCREMENTAL , etc.

También conocer el tipo de STATUS con el que finalizo.

Ya sea COMPLETED o FAILED.

El query en cuenstion es :

set serveroutput on
set linesize 150
set pagesize 300
col time_taken_display for a9

select session_key,
input_type,
status,
to_char(start_time,'yyyy-mm-dd hh24:mi') start_time,
to_char(end_time,'yyyy-mm-dd hh24:mi') end_time,
time_taken_display
from v$rman_backup_job_details
order by session_key desc;

El query esta formado a partir de la vista v$rman_backup_job_details, siendo la misma muy útil Sigue leyendo

ASM | ORA-00020: maximum number of processes (n) exceeded

Backup screenshot

Image via Wikipedia

Cuando trabajamos en un ambiente donde tenemos multiples Bases de Datos que se conectan al storage por medio de ASM, puede ocurrir que el Párametro PROCESS se encuentre desbordado.

Muchas veces cuando finalizan la implementación , los instaladores no toman en cuenta cuantas instancias de Bases de Datos serán ( aproximadamente ) instaladas.  Generalmente dejan los valores default que le asigna al párametro el valor 40. Con estos valores de incio generalmente podemos trabajar con una instancia o dos , pero al momento de abrir procesos desde la instacia hacia la instancia ASM, puede que tengamos problemas como ocurrio en el caso que presentamos :

Problema:

Cuando voy a recuperar una base de datos , que ya comparte el storage con otras instancias más en el mismo servidor, arroja el siguiente error:

ORA-00020: maximum number of processes () exceeded

Vemos el ejemplo en directo: Sigue leyendo

RMAN-03014: implicit resync of recovery catalog failed

RMAN-20020: database incarnation not set

file under Holy Fuck

Image by emdot via Flickr

Estaba realizando pruebas de RMAN para retornar en un punto en el tiempo por medio de arch’s.

Cuando finalizaba la ejecucion del ciclo de pruebas tomaba un backup de los archives.
Luego de ello rompia la base, hacia el restore y comenzaba el recovery hacia un determinado punto en el tiempo.

Pero cuando estaba terminando un ciclo ocurrio un problema a la hora de tomar el backup de los arch’s.

El problema traia como consecuencia , no poder tomar el backup de los archives.

$ rman target / catalog=rman@catrman

RMAN> run 
  {
   allocate channel oem_backup_disk1 type disk ;
   allocate channel oem_backup_disk2 type disk ;
   allocate channel oem_backup_disk3 type disk ;
   allocate channel oem_backup_disk4 type disk ;
 2> 3> 4> 5> } 

allocated channel: oem_backup_disk1
channel oem_backup_disk1: sid=646 devtype=DISK

allocated channel: oem_backup_disk2
channel oem_backup_disk2: sid=651 devtype=DISK

allocated channel: oem_backup_disk3
channel oem_backup_disk3: sid=654 devtype=DISK

allocated channel: oem_backup_disk4
channel oem_backup_disk4: sid=642 devtype=DISK
released channel: oem_backup_disk1
released channel: oem_backup_disk2
released channel: oem_backup_disk3
released channel: oem_backup_disk4

RMAN> backup as COMPRESSED BACKUPSET tag '$TAG' archivelog all format '/tsm/t2/t2p/diario/%T_%d_ARC_PRE_DBID%I_s%s_p%p_arc';

Starting backup at 17-MAY-11
current log archived
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 05/17/2011 15:03:58
RMAN-03014: implicit resync of recovery catalog failed
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20020: database incarnation not set
Que podria estar ocurriendo ?

Cuando terminas de realizar un recover de una base , Sigue leyendo

ORA-02291: integrity constraint (RMAN.RLH_F1) violated

PROBLEMAS CON RMAN : REGISTER DATABASE – UNREGISTER DATABASE

Me disponia a realizar la tarea de agregar una base de desarrollo a los backups automaticos con RMAN por una solictud de gente de ese departamento ya que hace un tiempo la tenian abandonada y estaban teniendo una fuerte actividad developer. Mi sorpresa fue mayuscula cuando me intento loguear para registrarla en el catalogo de RMAN y probrar un backup de controlfile arrojandome el error ORA-02291

[oracle@dat1010lx bin]$ rman target / catalog=rman@catrman

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Nov 4 16:29:34 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: POTDESA (DBID=3043094951)
recovery catalog database Password:
connected to recovery catalog database

RMAN> register database;

starting full resync of recovery catalog
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of register command at 11/04/2010 16:29:46
RMAN-03014: implicit resync of recovery catalog failed
RMAN-03009: failure of full resync command on default channel at 11/04/2010 16:29:46
ORA-02291: integrity constraint (RMAN.ORL_F1) violated - parent key not found

RMAN> quit

El error estaba ocurriendo por que los chicos del team habian registrado la base para automatizar la tarea, y mientras se resincornizaba
Sigue leyendo

RMAN – Crosscheck command

Wireless Information System for Emergency Resp...

Image via Wikipedia

El comando CROSSCHECK compara lo existente en el CATALOGO con lo existente fisico en DISCO o TAPE.

Esto no sirve para conocer con que contamos al momento de hacer una tarea que implique traer datos antiguos al dia de hoy.

Recordemos que el comando CROSSCHECK, nos muesta tres estados:

EXPIRED : Cuando un objeto no es encontrado ni en el disco , ni en TAPE.
Si un backup set aparece como EXPIRED todos su componentes también lo están.AVAILABLE: Como su nombre lo indica estan los objetos disponibles para
que RMAN los tome para trabajar. De la misma manera descrita con antelacion ,
si un backup set aparece como AVAILABLE todos su componentes también lo están.UNAVAILABLE: Como su nombre lo indica estan los objetos disponibles
para que RMAN los tome para trabajar.

Voy a poner solo algunos ejemplos de lo que podemos realizar con el :

Cuando trabajamos con RMAN , sabemos que podemos tener resguardos en cinta (TAPE) o en disco (DISK)  es por ello que en algunos casos voy alocar el canal de el TAPE y cuano ejecute el comando sin niguna alocacion voy a estar asumiendo directamente que estoy trabajando con el disco. Esto es importante por que quizas borramos cosas del disco local y al ejecutar el croscheck actualiza el catalogo con datos de lo que tenemos en cinta : Ejemplo

  1. Tomo un backup en filsystem.
  2. Pasa la cinta y lo resguarda.
  3. La cinta no borra lo que resguardado del SO por que no lo tiene configurado por politica.
  4. Las piezas quedan en el SO, y ahi es donde debemos tener cuidado.

* Recomiendo hacer un script para que luego de cada subida a cinta lo elimine o por operativo mediante un cron.

Sigue leyendo

bash scripts – Backup Cold RAC

Cuando trabajamos con RAC es importante el tema de los backups:

Siempre trabajo con RMAN y backup hot, pero en algunos clientes por tema de costo de hardware, precisamente de storage, dejan de lado el archiving y trabajan en modo NOARCHIVELOG. Para esos casos armer este script para ambientes RAC y backup COLD.

Sigue leyendo