ORA-00600: 内部错误代码, 参数: [13011], [6651], [8395205], [0], [8395205], [0], [], [], [], [], [], []

具体错误内容如下

      dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)----- Current SQL Statement for this session (sql_id=g60zjruv1ddn8) -----

     delete from WRM$_DATABASE_INSTANCE dbinst where dbinst.dbid = :dbid   and NOT EXISTS       (select 1 from WRM$_SNAPSHOT snap          where snap.dbid = :dbid            and snap.instance_number = dbinst.instance_number            and snap.startup_time = dbinst.startup_time)   and dbinst.startup_time <       (select max(startup_time)          from WRM$_DATABASE_INSTANCE         where dbid = :dbid           and instance_number = dbinst.instance_number           and startup_time < (cast(SYSTIMESTAMP as TIMESTAMP) -                               :retention))

oracle 数据库在执行红色部分的是的sql语句 报 ORA-00600: 

数据库 WRM$_DATABASE_INSTANCE  跟 WRM$_SNAPSHOT是数据库性能快照表,删除数据是每天要做的动作,数据库运行好几年没没问题,最近突然出现,而且数据库每做什么动作

查看这个delete 语句在数据库的的执行计划,如下:

从执行计划中,看出删除 只有 2 个 主键索引,问题应该就是主键 索引导致

解决办法(至于外键的约束关系,要考平时多注意积累,我就不在这多说了):

   

alter table WRM$_SNAPSHOT disable constraint WRM$_SNAPSHOT_FK;
alter table WRM$_DATABASE_INSTANCE disable constraint WRM$_DATABASE_INSTANCE_PK ;

select index_name ,status from dba_indexes where table_name = 'WRM$_DATABASE_INSTANCE';
select index_name ,status from dba_indexes where table_name = 'WRM$_SNAPSHOT';

alter table WRM$_DATABASE_INSTANCE enable  constraint WRM$_DATABASE_INSTANCE_PK ;
alter table WRM$_SNAPSHOT enable  constraint WRM$_SNAPSHOT_FK;

select index_name ,status from dba_indexes where table_name = 'WRM$_DATABASE_INSTANCE';
select index_name ,status from dba_indexes where table_name = 'WRM$_SNAPSHOT';

观察数据库几天, 没有出现 ora-00600 错误, 数据库正常运行






猜你喜欢

转载自blog.csdn.net/brighter_xiao/article/details/72517596