今天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)
當遇到這個錯誤時,應當查看追蹤檔案,通過追蹤檔案來進行進一步的判斷。