暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RMAN-2001报错处理

1299

作者简介

潘仁杰,北京海天起点数据库维护工程师,获有OCP、RHCE证书。多年的运营商、银行数据库运维经验,熟悉Oracle日常运维管理、安装、升级和迁移等擅长并专注于Oracle在unix/linux下的诊断及SQL调优。并且也了解关注MYSQL,大数据和Python等技术。

 

从事运维工作的朋友会经常掉到,而产生这些大大小小的坑”,往往是由于被我们忽视的几个小的、不起眼的因素一起作用下产生的。这些致坑”因素中有些可能是开发人员导致的、有些可能是DBA疏忽的、有些是客户不当操作导致的。经验丰富的DBA往往可以在系统开发、运维中利用自己经验和知识帮助系统避开这些致坑”因素。

概述


系统环境:
 


8月28日上午,客户反映备份的时候,备份失败。失败时,主要报错为
 
RMAN-00004:oracle error from recovery catalog database
 
RMAN-20011:target database incarnation is not current in recovery catalog ;
 
另外客户提供了一个重要的信息,备份失败发生在应急演练之后(从生产库恢复了一个测试库进行演练的)


问题判断与分析


从报错信息:RMAN-20011:target database incarnation is not current in recovery catalog ;
 
基本可以判断的出来,备份失败的原因是:需要目标库在catlog库未注册。分析,在从生产克隆出去的应急库和生产库有相同的DBID,应急库注册到了catlog库,使用生产库的catlog信息失效。
 
问题验证与处理


  • 查询 RC_DATABASE显示在恢复目录中已注册的目标数据库信息

 
SQL> select NAME, DBID, RESETLOGS_TIME from RC_DATABASE order by 1;

NAME     DBID            RESETLOGS_TIME
-------  -------------- ---------
HT    11xxxxx123    29-AUG-15
……………


  • 通过查询 rc_database_incarnation(catlog库),来检查下HT库在CATLOG库中的注册情况:

 
SQL> select DB_KEY, DBID, NAME, CURRENT_INCARNATION  from RC_DATABASE_INCARNATION order by 1;

DB_KEY          DBID   NAME CUR
------ -------------  ----- ---
1     11xxxxx123  HT   NO
1     11xxxxx123  HT   YES
……………


查询结果中显示,存在一个失效的数据库。查询结果和分析的情况一致。
 
  • 对目标数据库HT进行反注册和重新注册


由于9i不支持unregister命令。
 
需要在CATLOG库执行:

SQL> execute dbms_rcvcat.unregisterdatabase (db_key, db_id)
SQL> execute dbms_rcvcat.unregisterdatabase(1, 11xxxxx123);


在目标库执行

rman  target  / catlog rman/rman@catlog
RMAN> register database;


10G以上的版本支持unregister命令,可以执行

 rman  target  / catlog rman/rman@catlog
RMAN> register database;
RMAN> unregister database;


  • 再次查询 rc_database_incarnation(catlog库),来检查下HT库在CATLOG库中的注册情况:

 
SQL> select DB_KEY, DBID, NAME, CURRENT_INCARNATION  from RC_DATABASE_INCARNATION order by 1;


查询结果正常
 
  • 和客户确认的情况下,重新备份数据库,备份正常。


附:
 
后来根据同事反应,在做应急演练的时候,在启库的时候,没有从SQLPLUS中启动数据库,而且是直接从RMAN中启动的数据库,应该是这一步启动数据库的时候,默认执行了resynccatalog的操作,由于生产库和应急库的DBID相同导致了,生产库的catalog信息失效。存在一个更简单的处理办法,在生产库使用resynccatalog,装数据库的信息重新注册到CATALOG库

RMAN> resync catalog



原创文章,版权归本文作者所有,如需转载请注明出处


喜欢本文请长按下方的二维码订阅Oracle一体机用户组

最后修改时间:2020-01-14 09:44:26
文章转载自Oracle一体机用户组,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论