oracle 11.2.0.4的補丁有大問題

tonglei2000發表於2018-02-25
春節剛過,還沒有上班,一個客戶電話說資料庫因主機掉電,不能啟動。
發過來報錯,如下:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
oracle意外掉電,從來沒有見到過這個錯誤。
經過反覆分析,發現控制檔案沒有問題。system表空間系統重要資料字典損壞。
但是判斷是因為斷電導致。反正自己是沒有辦法進行資料恢復。建議使用者接受資料損壞的結果。
後來在網上找到了兩個一樣問題的帖子,才知道問題的嚴重性
http://www.itpub.net/thread-2091896-1-1.html

%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A2%AB%E6%B3%A8%E5%85%A5%E6%81%B6%E6%84%8F%E6%94%BB%E5%87%BB%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%A1%88%E4%BE%8B%E6%81%A2%E5%A4%8Dora-16703.html

原來我們手頭的11.2.0.4的介質是被篡改的。
在linux平臺,使用md5sum命令檢視p13390677_112040_Linux-x86-64_1of7.zip這個檔案,如果得出的值後面四位是124173就是被篡改的,正確的版本後面四位應該是F58F28。
被篡改的版本會建立一個觸發器。這個觸發器在資料庫每次啟動的時候觸發。觸發時檢測資料庫建立時間,如果建立時間超過300天,就會刪除核心資料字典表。使得資料庫馬上宕掉,再啟動將無法open,報ORA-00704和ORA-00600,以本人的技術水平,基本無法進行資料恢復。
select * from v$version
檢視如果是11.2.0.4,就馬上檢視有沒有篡改的trigger。

select text from all_source where type='TRIGGER' AND NAME='DBMS_SUPPORT_DBMONITOR';

使用下面的語句刪掉觸發器,儲存過程,和包

drop TRIGGER DBMS_SUPPORT_DBMONITOR;
drop PROCEDURE DBMS_SUPPORT_DBMONITORP;
drop PACKAGE DBMS_SUPPORT;


網上的介質太坑了

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13337857/viewspace-2151235/,如需轉載,請註明出處,否則將追究法律責任。

相關文章