RMAN: ORA-02291: restriccion de integridad (RMAN.RLH_F1) violada – clave principal no encontrada
1. Objetivo
Explicar cómo solucionar el error ORA-02291 al intentar registrar una base de datos en el catálogo de RMAN
2. Motivos por los cuales sucede este error
El error se obtiene al intentar registrar la base de datos en el catálogo. Anteriormente esta base de datos estaba registrada y se aplicó el comando «RMAN> unregister database;»
Cuando se intenta registrar de nuevo esta base de datos da el siguiente error:
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
RMAN-00571: ===========================================================
RMAN-00569:
=============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03008: error while performing automatic resync of recovery catalog
ORA-02291: restriccion de integridad (RMAN.RLH_F1) violada - clave principal no encontrada
2. Solución
Hay que obtener el DB Key y el DBID de la base de datos. Esta información se puede realizar de la siguiente forma a través de RMAN
RMAN>LIST INCARNATION OF DATABASE dba11g; List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------ ------- ------- --------- ------- --------- ----------
919 920 DBA11G 337560195 CURRENT 1 26-NOV-10
– O consultando la vista del usuario rman rc_database
SQL> select * from rc_database;
DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOG
------ --------- ---------- ---- ----------------- --------
568 569 1622766183 RMAN 1 29/11/10
A continuación es necesario desregistrar la BBDD, esto se realizará lanzando el siguiente comando en la BBDD RMAN con el usuario rman.
EXEC DBMS_RCVCAT.UNREGISTERDATABASE('dbkey','dbid');
EXEC DBMS_RCVCAT.UNREGISTERDATABASE('919','337560195');
Una vez realizado lo anterior la BBDD ya podemos de nuevo registrar la base de datos en el catálogo
RMAN> register database;