昨天,一個朋友公司的數據庫崩潰。
這再次印證了我反復提到的一個命題:數據庫也需要休息。
每逢節假日,數據庫也經常會自我選擇放假。
以前我說:年終難終 進入數據庫事故多發期,一年一度今又是,記得另外一個聖誕節,我還和Biti一起在北京的時候,同樣遇到一個上海的朋友數據庫崩潰,我們遠程指導這位朋友恢復了數據。
這次的事情是這樣的。
1.首先主機宕機,磁盤出錯
看到以下這類錯誤,一般你的數據都很危險了
2.數據文件大量損壞
當然這次也不例外,大量文件損壞,dbv大量如下錯誤:
[Oracle@stat datafile]$ dbv file=o1_mf_system_29448mn7_.dbf blocksize=81923.控制文件損壞
啟動數據庫出現如下錯誤:
4.經過反復確認,這個環境Over了
5.不完全的備份
以前的備份機制使得我可以從遠程主機找到一系列備份集,但是沒有控制文件。
通過備份集、dbms_backup_restore等手段,首先恢復出來數據文件,然後嘗試啟動數據庫
6.強制打開
通過強制resetlogs手段打開數據庫,出現ORA-600 4000錯誤
Wed Dec 24 18:56:00 2008
Errors in file /opt/Oracle/admin/stat/udump/stat_ora_21479.trc:
ORA-00600: internal error code, arguments: [4000], [15], [], [], [], [], [], []
Wed Dec 24 18:56:01 2008
Errors in file /opt/Oracle/admin/stat/udump/stat_ora_21479.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [15], [], [], [], [], [], []
7.通過BBED解決ORA-600 4000錯誤
這個沒說的,只能通過BBED搞定了,修復有問題的數據塊,再次嘗試打開數據庫
8.遇到ORA-600 2662錯誤
這個錯誤就好解決了,通過我網站上的示例就可以解決:
Wed Dec 24 21:13:17 2008
Errors in file /opt/Oracle/admin/stat/udump/stat_ora_28316.trc:
ORA-00600: internal error code, arguments: [2662], [0], [412717646], [0], [412772634], [8389633], [], []
ORA-01092: Oracle instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [412717644], [0], [412772634], [8389633], [], []
Wed Dec 24 21:13:18 2008
Errors in file /opt/Oracle/admin/stat/udump/stat_ora_28316.trc:
ORA-00600: internal error code, arguments: [2662], [0], [412717647], [0], [412772634], [8389633], [], []
ORA-00600: internal error code, arguments: [2662], [0], [412717646], [0], [412772634], [8389633], [], []
ORA-01092: Oracle instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [412717644], [0], [412772634], [8389633], [], []
Wed Dec 24 21:13:18 2008
Errors in file /opt/Oracle/admin/stat/udump/stat_ora_28316.trc:
ORA-00600: internal error code, arguments: [2662], [0], [412717647], [0], [412772634], [8389633], [], []
ORA-00600: internal error code, arguments: [2662], [0], [412717646], [0], [412772634], [8389633], [], []
ORA-01092: Oracle instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [412717644], [0], [412772634], [8389633], [], []
9.解決ORA-600 4097號錯誤
接下來繼續出現ORA-600 4097號錯誤,這個也好解決,搞定UNDO表空間就Ok了
Wed Dec 24 21:18:12 2008
Errors in file /opt/Oracle/admin/stat/bdump/stat_j000_28723.trc:
ORA-00600: internal error code, arguments: [4097], [], [], [], [], [], [], []
10.解決一些其他小問題
此處省略10000字,終於搞定了用戶數據庫!
這個案例所用到的所有知識在我的網站上全都有詳細介紹,不過要能把所有知識綜合運用才能解決這次的故障。