今天rac库查询数据库遇到了 ORA-00600 kcbz_check_objd_typ_3错误,并且磁盘队列进程占用很高,系统压力很大,执行该alter system
今天rac库查询数据库遇到了 ORA-00600 kcbz_check_objd_typ_3错误,并且磁盘队列进程占用很高,系统压力很大
执行该alter system flush buffer_cache语句后,错误消失;
在一次数据恢复之后,遇到了ORA-00600 kcbz_check_objd_typ_3错误,在此记录一下。
首先 kcbz_check_objd_typ_3 这个错误的含义是:
当Oracle在检查内存中的数据块时,发现数据块上的对象号是错误的,随之抛出kcbz_check_objd_typ_3 这个异常。
通常这个错误意味着存在着数据损坏。
在我们遇到的案例中,用户首先是由于存储损坏引入的问题,我们修复后出现这个错误,这个错误在后台执行AWR采样时触发,临时性的,我们可以禁用AWR采样,从而规避这个问题,彻底修复由于AWR字典表引起的问题,可以通过重建AWR对象实现。
错误类似如下提示:
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []
有时候这个错误还可能和Space Advisor任务有关,,禁用该JOB也可以临时性的消除这个问题,某些BUG需要补丁才能解决:
exec dbms_scheduler.disable('AUTO_SPACE_ADVISOR_JOB');
alter system flush buffer_cache;
与此有关的BUG是:
Bug 4430244 - Segment advisor can load blocks of dropped objects into buffer cache (KCB OERI errors) (Doc ID 4430244.8)
当遇到这个错误时,应当查看跟踪文件,通过跟踪文件来进行进一步的判断。