« 骄阳似我-俺在八达岭滑雪的照片 | Blog首页 | Internet make Us Closer »
Oracle Diag:如何处理ORA-600 2662错误
作者:eygle |【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】链接:http://www.eygle.com/archives/2005/12/oracle_diagnostics_howto_deal_2662_error.html
在ORA-00600 2262错误解决一文中,我曾经提到过,很多时候使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库,我们可能会由于SCN不一致而遭遇到ORA-00600 2662号错误,这里给出一个完整的例子及解决过程。
当然模拟2662错误需要技巧,本文并不会涉及这个内容。
通过正常方式启动数据库时,从alert文件中,我们可以看到ora-00600 2662号错误。
Sun Dec 11 18:02:25 2005 |
此时我们可以通过Oracle的内部事件来调整SCN:
增进SCN有两种常用方法:
1.通过immediate trace name方式(在数据库Open状态下)
alter session set events 'IMMEDIATE trace name ADJUST_SCN level x';
2.通过10015事件(在数据库无法打开,mount状态下)
alter session set events '10015 trace name adjust_scn level x';
注:level 1为增进SCN 10亿 (1 billion) (1024*1024*1024),通常Level 1已经足够。也可以根据实际情况适当调整。
本例由于数据库无法打开,只能使用的二种方法。
[oracle@jumper dbs]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Sun Dec 11 18:26:18 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to an idle instance. SQL> startup mount pfile=initconner.ora Total System Global Area 97588504 bytes SQL> alter session set events '10015 trace name adjust_scn level 10'; Session altered. SQL> alter database open; Database altered. |
注意,由于我使用了10015事件,使得SCN增进了10 billion,稍后我们可以验证。
[oracle@jumper dbs]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Sun Dec 11 18:26:18 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to an idle instance. SQL> startup mount pfile=initconner.ora Total System Global Area 97588504 bytes SQL> alter session set events '10015 trace name adjust_scn level 10'; Session altered. SQL> alter database open; Database altered. |
此时数据库可以打开,从alert文件中我们可以看到如下提示:
Sun Dec 11 18:27:04 2005 |
SCN被增进了10 billion,即 10 * (1024*1024*1024) = 10737418240,正好是日志里记录的数量。
我们从数据库内部看一下检查点的增进情况:
SQL> select open_mode from v$database; OPEN_MODE SQL> select file#,CHECKPOINT_CHANGE# from v$datafile; FILE# CHECKPOINT_CHANGE# SQL> shutdown immediate; Total System Global Area 97588504 bytes FILE# CHECKPOINT_CHANGE# SQL> col CHECKPOINT_CHANGE# for 99999999999999999 FILE# CHECKPOINT_CHANGE# |
我们看到CHECKPOINT_CHANGE# 最终被增进了10 Billion.这要是账户上的钱该有多好:)
-----这篇 【Oracle Diag:如何处理ORA-600 2662错误】来自 www.eygle.com | CSDN技术网摘| del.icio.us|365Key
By eygle on 2005-12-20 19:52 | Comments (3) | Posted to Backup&Recovery | Case | Internal | Edit |Pageviews:
Listed below are links to weblogs that reference Oracle Diag:如何处理ORA-600 2662错误:
» Oracle HowTo: How to deal with Ora-600 4193 error from Friends Life and Oracle
在解决2662错误之后,经常会出现Ora-00600 4193错误,经常可以在alert文件中看到的错误号类似 [Read More]
Tracked on September 7, 2006 1:55 PM
留言 (3)
学习
Posted by: happy at January 17, 2006 11:46 AM
Test
Posted by: eygle at September 4, 2006 2:56 PM
您好,
我是IPI猎头顾问Mandy,很高兴通过电话认识您,谢谢您的信任与支持!
目前,我们的客户是路透社,它是国际知名的金融信息提供商,以其媒体平台为基础,路透社可为Stanley等金融机构提供金融信息产品。2006年8月,路透社在中国北京成立研发中心,主要是将WEB层和后台数据库之间的研发工作放在中国。目前,该研发中心大约有200人。
我们现在需要的技术人员要具备以下任意一种技术,要求3年以上工作经验:
1、 OracleDBA
2、 C++,COM
3、 Perl,SQL,Sybase
附上正在热招的职位说明,请查阅。
请将简历更新后赠我一份。如有问题,欢迎随时联系我。
祝 工作顺利 生活开心!
fanxuan1983@hotmail.com
Posted by: 范萱 at July 10, 2007 10:48 AM
