发布网友 发布时间:2024-10-23 15:27
共4个回答
热心网友 时间:5分钟前
b_sanity_check_2内核函数kernel function负责监测控制文件的健康性,该ORA-600[kb_sanity_check_2]一般在alter database mount阶段发生; 该ORA-600[kb_sanity_check_2]发生的原因一般是 控制文件controlfile 块头的seq#号大于控制文件头中的seq#,所以该监测函数认为存在控制文件逻辑不一致。
该kb_sanity_check_2函数是从10gR2才引入了,换句话说9i没有这样的控制文件健康性监测,引入该特性的目的是为了检测出写丢失lost write和陈旧读stale read。
该ORA-600[kb_sanity_check_2]一般有2个argument代码:
ARGUMENTS:
Arg [a] seq# in control block header.
Arg [b] seq# in the control file header.
Arg [c] maclean
上例是一个ORA-600[kb_sanity_check_2]的实战案例,虽然出现了该错误,但是由于多路复用了controlfile控制文件,通过修改参数control_files ,发现其中第二个控制文件mount时未报错,可以确信仅有1个控制文件有问题,所以只需要dd 复制一下即可。
针对这个 实例mount阶段的ORA-600[kb_sanity_check_2]错误,一般有几种解决方法:
1、如果多路复用了控制文件,则未必所有控制文件都坏了,修改control_files参数一个个试过来,注意当 好的控制文件和坏的控制文件都在参数control_files里时是无法mount成功的
2、从备份中restore健康的控制文件出来
3、若没有备份,则需要手动重建控制文件了
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
热心网友 时间:9分钟前
你搞的太复杂了,停服务先,然后删掉控制文件2,再把控制文件1复职一个出来,名字改成控制文件2的名字,再启动就行了
热心网友 时间:3分钟前
参考:网页链接
专业oracle恢复
热心网友 时间:1分钟前
控制文件出错,修复它