martes, 24 de enero de 2012

Erro ORA-38856 cuando duplicas una base de datos en RAC 11gR2

En estos dias he estado clonando nuestras bases de datos en RAC 11gR2 para nuestro ambiente de desarrollo y con el siguiente script:

RUN
{
ALLOCATE AUXILIARY CHANNEL CH1  TYPE DISK ;
ALLOCATE AUXILIARY CHANNEL CH2  TYPE DISK ;
DUPLICATE DATABASE TO TESTDB
  BACKUP LOCATION '/mount/acfsfut1/copy01/ORIGINAL_GOLDCOPY/'
  DB_FILE_NAME_CONVERT '+DATA/ORIGINAL/DATAFILE','+DATA/TESTDB/DATAFILE'
  PFILE '/mount/dba01/oracle/TESTDB/pfile/initTESTDB1.ora'
  NOFILENAMECHECK
  NOREDO
LOGFILE
  GROUP 1 (
    '+DATA/TESTDB/ONLINELOG/redo01g1.log',
    '+DATA/TESTDB/ONLINELOG/redo02g1.log'
  ) SIZE 300M ,
  GROUP 2 (
    '+DATA/TESTDB/ONLINELOG/redo01g2.log',
    '+DATA/TESTDB/ONLINELOG/redo02g2.log'
  ) SIZE 300M
 ;
}


En el momento que estaba finalizando la clonacion,cuando RMAN estaba tratando de abrir la base de datos, sucedio el siguiente error:

contents of Memory Script:
{
   Alter clone database open resetlogs;
}

alter database open resetlogs
*
ERROR at line 1:
ORA-38856: cannot mark instance UNNAMED_INSTANCE_2 (redo thread 2) as enabled


Buscando en MOS, encontre la nota 334899.1, en la que marca que podemos utilizar el siguiente parametro escondido

_no_recovery_through_resetlogs=TRUE


La misma nota menciona que es una situacion normal cuando tienes un respaldo y una clonacion en ambiente RAC.

Una vez que cambie el parametro, volvi a lanzar la clonacion de la base de datos, y esta vez acabo sin ningun problema

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 24-JAN-2012 19:37:18

Recovery Manager complete.


Lo ultimo que tenemos que hacer es remover este parametro del initTESTDB1.ora y apagar y reiniciar la instancia para que este parametro se remueva.