某网友的问题,一个11.2.0.3的windows数据库,出现异常,数据库最后经过多人多次抢救之后能够open了,但是查询v$instance,v$database,v$datafile等任何试图都报错,报如下的600错误:
这个错误其实是非常容易解决的,本质上就是Index的问题。当然他这里的问题并不止这一个,还有一个问题就是sysaux01.dbf文件居然存在1280个数据坏块,如下:
一般来讲出现大面积坏块的可能性是比较小的,而且这里的坏块数量也是很奇怪的。我通过bbed简单看楼下,发现后面的1280个坏块都是连续的,而且都是空块(非正常空块)。如下:
对于这个sysaux的坏文件,如果我们要进行处理,其实并不难,可以dd截取前面的138240 个block,然后同时修改数据文件头的kccfhbsz(单位为block),以及位于system数据文件中的
file$基表中的对应数据文件的大小信息即可。
当然,做完这些之后,你需要重建controlfile,来使信息保持一致。
CJQ0 started with pid=31, OS id=5860
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_cjq0_5860.trc (incident=121571):
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_cjq0_5860.trc (incident=121572):
ORA-00600: internal error code, arguments: [600], [ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
], [], [], [], [], [], [], [], [], [], []
Incident details in: E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\incident\incdir_121572\orcl_cjq0_5860_i121572.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Tue Sep 02 23:58:02 2014
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_4188.trc (incident=119396):
ORA-00600: 内部错误代码, 参数: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
这个错误其实是非常容易解决的,本质上就是Index的问题。当然他这里的问题并不止这一个,还有一个问题就是sysaux01.dbf文件居然存在1280个数据坏块,如下:
DBVERIFY: Release 11.2.0.3.0 - Production on 星期三 9月 3 10:21:23 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - 开始验证: FILE = E:\DATA\ORADATA\ORCL\SYSAUX01.DBF
页 138241 标记为损坏
Corrupt block relative dba: 0x00821c01 (file 2, block 138241)
Completely zero block found during dbv:
页 138242 标记为损坏
Corrupt block relative dba: 0x00821c02 (file 2, block 138242)
Completely zero block found during dbv:
.....省略部分内容
页 139520 标记为损坏
Corrupt block relative dba: 0x00822100 (file 2, block 139520)
Completely zero block found during dbv:
DBVERIFY - 验证完成
检查的页总数: 139520
处理的页总数 (数据): 39125
失败的页总数 (数据): 0
处理的页总数 (索引): 36727
失败的页总数 (索引): 0
处理的总页数 (Lob) : 9390
失败的总页数 (Lob) : 0
处理的页总数 (其他): 27440
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 25558
标记为损坏的总页数: 1280
流入的页总数: 0
加密的总页数 : 0
最高块 SCN : 37590532 (0.37590532)
一般来讲出现大面积坏块的可能性是比较小的,而且这里的坏块数量也是很奇怪的。我通过bbed简单看楼下,发现后面的1280个坏块都是连续的,而且都是空块(非正常空块)。如下:
BBED> set file 2 block 138241
FILE# 2
BLOCK# 138241
BBED> map
File: /home/ora10g/SYSAUX01.DBF (2)
Block: 138241 Dba:0x00821c01
------------------------------------------------------------
BBED-00400: invalid blocktype (00)
BBED> d /v count 200
File: /home/ora10g/SYSAUX01.DBF (2)
Block: 138241 Offsets: 0 to 199 Dba:0x00821c01
-------------------------------------------------------
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 l ........
<16 bytes per line>
BBED> set file 2 block 138247
FILE# 2
BLOCK# 138247
BBED> d /v count 200
File: /home/ora10g/SYSAUX01.DBF (2)
Block: 138247 Offsets: 0 to 199 Dba:0x00821c07
-------------------------------------------------------
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 00000000 00000000 l ................
00000000 00000000 l ........
<16 bytes per line>
对于这个sysaux的坏文件,如果我们要进行处理,其实并不难,可以dd截取前面的138240 个block,然后同时修改数据文件头的kccfhbsz(单位为block),以及位于system数据文件中的
file$基表中的对应数据文件的大小信息即可。
当然,做完这些之后,你需要重建controlfile,来使信息保持一致。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




