在客户的数据库中,恢复之后打开数据库后遇到如下问题,ORA-00600 kdsgrp1错误,这个错误主要指对应索引ROWID,在数据表中找不到记录,这表明出现了数据一致性问题.
我们可以通过重建索引来解决,以下错误提示表明问题出现在file 3 block 32538号数据块上.
以下摘录了一段error stack :
我们可以通过重建索引来解决,以下错误提示表明问题出现在file 3 block 32538号数据块上.
以下摘录了一段error stack :
*** ACTION NAME:(Advisor Task Maintenance) 2011-07-12 08:52:46.971*** MODULE NAME:(MMON_SLAVE) 2011-07-12 08:52:46.971*** SERVICE NAME:(SYS$BACKGROUND) 2011-07-12 08:52:46.971*** SESSION ID:(158.5) 2011-07-12 08:52:46.971row 00c07f1a.4d continuation atfile# 3 block# 32538 slot 78 not found**************************************************KDSTABN_GET: 0 ..... ntab: 1curSlot: 78 ..... nrows: 192***************************************************** 2011-07-12 08:52:46.985ksedmp: internal or fatal errorORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []Current SQL statement for this session:SELECT T.ID FROM WRI$_ADV_TASKS T, WRI$_ADV_PARAMETERS P WHERE T.ID = P.TASK_IDAND T.STATUS <> :B4 AND BITAND(T.PROPERTY, :B3 + :B2 ) = 0 AND P.NAME = 'DAYS_TO_EXPIRE' AND DECODE(P.NAME, 'DAYS_TO_EXPIRE', DECODE(P.VALUE, 'UNLIMITED', :B1 +1, 'UNUSED', T.MTIME + 30, DECODE(TO_NUMBER(P.VALUE), 0, :B1 + 1, T.MTIME + TO_NUMBER(P.VALUE))), :B1 + 1) < :B1
我们可以找到这个对象:
SQL> select owner,segment_name,segment_type from dba_extents where file_id=3 and block_id<=32538 and (block_id+blocks)>=32538;OWNER SEGMENT_NAME------------------------------ ------------------------------SEGMENT_TYPE------------------------------------SYS WRI$_ADV_PARAMETERSTABLESQL> select count(*) from WRI$_ADV_PARAMETERS;COUNT(*)----------35195
这个对象是AWR的历史表,其数据并不重要,简单点的,我们直接Truncate删掉了所有数据,消除了错误隐患:
SQL> truncate table WRI$_ADV_PARAMETERS;Table truncated.
如果问题出现在字典表上,则删除数据和重建索引就都不可能,只能通过BBED修改块来完成了.
在第一次启动数据库之后出现如下错误:
Starting background process QMNCQMNC started with pid=21, OS id=1020126Tue Jul 12 08:52:46 2011Completed: ALTER DATABASE OPENTue Jul 12 08:52:46 2011Errors in file /oracle/so/admin/bdump/so_m000_905446.trc:ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []Tue Jul 12 08:53:02 2011Errors in file /oracle/so/admin/bdump/so_m000_905446.trc:ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []ORA-06512: at "SYS.PRVT_ADVISOR", line 4889ORA-06512: at line 1
在完成数据清理后,启动数据库,原有的错误就不再出现了:
Database Characterset is ZHS16CGB231280Opening with internal Resource Manager planwhere NUMA PG = 1, CPUs = 6replication_dependency_tracking turned off (no async multimaster replication found)Starting background process QMNCQMNC started with pid=16, OS id=913466Tue Jul 12 09:16:08 2011Completed: ALTER DATABASE OPEN
逐个修正该错误,数据库可以恢复正常运行.
由于AWR数据是较为频繁写入的,所以在断电等故障时最容易遭遇损坏和不一致.
请牢记:断电是数据库的大敌.
由于AWR数据是较为频繁写入的,所以在断电等故障时最容易遭遇损坏和不一致.
请牢记:断电是数据库的大敌.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




