« SMON: recover undo segment与事务恢复 | Blog首页 | kcbgtcr 错误小记 »
ORA-00600 3020 错误案例一则
作者:eygle | 【转载请注出处】|【云和恩墨 领先的zData数据库一体机 | zCloud PaaS云管平台 | SQM SQL审核平台 | ZDBM 数据库备份一体机】
链接:https://www.eygle.com/archives/2010/03/ora_00600_3020.html
最近遇到一则ORA-600的3020错误,数据库在故障恢复中,应用归档日志时遇到3020错误:链接:https://www.eygle.com/archives/2010/03/ora_00600_3020.html
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'.也就是说,在恢复时发现Redo里面记录的信息和被恢复的数据块信息不一致,导致恢复无法继续。比如Update Some record from 3 to 2,结果发现该记录根本不是3,恢复无法继续。
There is an inconsistency between the information stored in the redo
and the information stored in a database block being recovered.
这个错误可能是由于写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;
将不一致的块标记为损坏,然后可以执行进一步的恢复尝试。
这次处理这个案例,最后选择了不完全恢复,补录数据,有时候放弃也是一种恢复!
-The End-
历史上的今天...
>> 2015-03-02文章:
>> 2011-03-02文章:
>> 2009-03-02文章:
>> 2008-03-02文章:
>> 2007-03-02文章:
>> 2006-03-02文章:
>> 2005-03-02文章:
By eygle on 2010-03-02 08:29 | Comments (5) | Backup&Recovery | Case | 2509 |
我以前也遇到过这种问题,但一直没想到解决方案,现在了解了,回去试试!!
对这个真的不是很懂 我是来凑凑热闹的 很羡慕做技术的人!!
都看不懂,太专业了!
有时候放弃也是一种恢复!
呵呵,有点味道的一句话。。。
ORA-00600: internal error code, arguments: [kohdtf048], [], [], [], [], [], [], []
Wed Mar 23 12:42:55 2011
ORA-600 encountered when generating server alert SMG-3000