RMAN-2001报错处理

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

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

概述

系统环境

服务器型号 IBM
操作系统版本 AIX
Oracle版本 Oracle Enterprise Database 9i RAC
主机IP
ORACLE_SID ht1/ht2
数据文件存放方式 RAW
归档模式 文件系统

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显示在恢复目录中已注册的目标数据库信息

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

查询结果中显示,存在一个失效的数据库。查询结果和分析的情况一致。

  • 对目标数据库HT进行反注册和重新注册

由于9i不支持unregister命令。

需要在CATLOG库执行:

在目标库执行

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

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

查询结果正常

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

附:

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

 


未经允许不得转载:Oracle一体机用户组 » RMAN-2001报错处理

相关推荐