ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 文件系统异常引起的数据库open失败的解决过程

文件系统异常引起的数据库open失败的解决过程

原创 Linux操作系统 作者:Allen2312 时间:2009-01-16 14:39:18 0 删除 编辑

越到年底事情越多,感觉自己有点年底综合症的意思,不想去干活的时候事情还总是特别多,前两天有同事打电话说公司一个测试数据库起不来了,服务器异常宕机,结果文件系统出了点问题,所以数据库不能启动了,让帮忙解决下!

结果第二天跑到公司去了,现场环境是这样的:非归档的Oracle 10.2.0.4.0单机数据库,起初是redo group4异常,不能读取,数据库open时候报错:

Tue Jan 13 15:09:17 2009
Aborting crash recovery due to error 368
Tue Jan 13 15:09:17 2009
Errors in file /u01/app/oracle/admin/crm/udump/crm_ora_6918.trc:
ORA-00368: 重做日志块中的校验和错误
ORA-00353: 日志损坏接近块 138939 更改 8245479013914 时间 01/12/2009 21:21:45
ORA-00312: 联机日志 4 线程 1: '/u01/app/oracle/oradata/crm/redo04.log'
ORA-368 signalled during: ALTER DATABASE OPEN...

而且前面日志中有很多这样的错误:

ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01555: 快照过旧: 回退段号 6 (名称为 "_SYSSMU6$") 过小

这为后面clear redo后留下了隐患,同事尝试了clear redo04.log,结果报错:ORA-1624

然后根据提示去做了ALTER DATABASE RECOVER  database until cancel ,因为是非归档,所以选择auto方式,然后报错找不到归档XXX.ARC,然后去alter database open resetlogs,然后还是无法open数据库,就重启多次尝试recover,然后open resetlogs,不能成功。

然后使用隐含参数:

ALTER SYSTEM SET _allow_resetlogs_corruption=TRUE SCOPE=SPFILE; ALTER SYSTEM SET _allow_terminal_recovery_corruption=TRUE SCOPE=SPFILE;

重启后,就出现前面提到的:

 ORA-00704: 引导程序进程失败

ORA-00704: 引导程序进程失败

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-01555: 快照过旧: 回退段号 8 (名称为 "_SYSSMU8$") 过小

Error 704 happened during db open, shutting down database

等我接手处理的时候,就是上面这个情况了!

我的操作过程:也是尝试open resetlogs,报错!然后recover database,open resetlogs,依然报错!

然后看日志,发现redo2好像也有问题,反正是测试库,clear再说!依然recover,open resetlogs,报错依然是:

ORA-00704: 引导程序进程失败

ORA-00704: 引导程序进程失败

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-01555: 快照过旧: 回退段号 8 (名称为 "_SYSSMU8$") 过小

Error 704 happened during db open, shutting down database

然后上网google下,参考了篇文档,说可以加隐含参数:_ALLOW_ERROR_SIMULATION=true,可以阻止ADJUST_SCN,尝试了下,也不行!

再找metalink看看,结合了一堆文档,分析问题也出在undo文件上了,drop undo offline,执行alter database datafile 2 offline,然后alter database open,这次终于出来我们想要的ora-600了

ORA-00600: 内部错误代码, 参数: [2662], [1919], [3436769350], [1919], [3436770762], [12593956], [], []

ORA-00600: 内部错误代码, 参数: [2662], [1919], [3436769350], [1919], [3436770762], [12593956], [], []

Error 600 happened during db open, shutting down database

这次应该能打开了,重启数据库到mount,然后alter database open,数据库终于open了,下面就是测试工程师的工作了,导出数据,重建库,导入,搞定!!!

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/122290/viewspace-539831/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 整理心情
请登录后发表评论 登录
全部评论

注册时间:2008-11-03

  • 博文量
    12
  • 访问量
    69562