0

ORA-00600 3020 错误案例

盖国强 2019-05-08
74
摘要:ORA-600的3020错误,数据库在故障恢复中,应用归档日志时遇到3020错误

问题描述

最近遇到一则ORA-600的3020错误,数据库在故障恢复中,应用归档日志时遇到3020错误:

ORA-00283: recovery session canceled due to errors
RMAN-11003: failure during parse/execution of SQL statement: 
            alter database recover logfile '/arch/prod1_2711_681480148.arc'
ORA-00283: recovery session canceled due to errors
ORA-12801: error signaled in parallel query server P011, instance hpdb1:PROD1 (1)
ORA-00600: internal error code, arguments: [3020], [37], [94633], [2], [3659], [604], [16], []
ORA-10567: Redo is inconsistent with data block (file# 37, block# 94633)
ORA-10564: tablespace APPS_UNDOTS2
ORA-01110: data file 37

专家解答

出现这个错误后,恢复中断,无法继续,3020错误在Metalink上的解释,主要原因是:

 This is called a 'STUCK RECOVERY'.
  There is an inconsistency between the information stored in the redo 
  and the information stored in a database block being recovered.

也就是说,在恢复时发现Redo里面记录的信息和被恢复的数据块信息不一致,导致恢复无法继续。比如Update Some record from 3 to 2,结果发现该记录根本不是3,恢复无法继续。

这个错误可能是由于写Redo的某个操作丢失,这可能是由于异常宕机或存储故障导致的。
This error can be reported if any of these updates are lost for some reason. 

出现这个错误,如果没有备份,数据也不是特别重要,则可以通过一些隐含参数或强制手段来打开数据库,不过不可避免的会出现数据损失,Olive做过一次这样的尝试 。
经过验证的可实践方式是使用:
recover database [using backup controlfile] allow 1 corruption;

将不一致的块标记为损坏,然后可以执行进一步的恢复尝试。

这次处理这个案例,最后选择了不完全恢复,补录数据,有时候放弃也是一种恢复!

「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
最新发布
暂无内容,敬请期待...
数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部
暂无课程,敬请期待...