資料庫不能開啟,沒有備份處理方法之一強行開啟
由於企業的資料庫人員經驗不足,或是根本沒有dba,因此,可能會出現資料癱瘓,資料庫不能開啟但是又沒有備份的現象,那麼我們可能有兩種方法:
a,資料庫強行開啟;
b,使用oracle dul工具來把資料抽取出來
這篇文章簡述一下如果資料庫不能開啟強行開啟的方法
1 .把init檔案中的:
undo_management=manual
3、在init.ora中加入如下引數
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
可以先嚐試使用_offline_rollback_segments=true,因為這個不會破壞回滾段。
如果不行再使用_corrupted_rollback_segments
4.然後啟動資料庫到mount狀態
recover database until cancel
5.alter database open resetlogs;
由於資料庫是不一致方式開啟,因此,開啟後把資料庫的資料使用exp或是expdp匯出來,然後重新建立資料庫,然後匯入資料
在開啟的時候可能會報ora-600[2662]錯誤,那麼需要如下辦法處理
ORA-600 [2662]"Block SCN is ahead of Current SCN",說明當前資料庫的資料塊的SCN早於當前的SCN,主要是和儲存在UGA變數中的
ORA-600 [2662] [a][b] [c] [d] [e]
Arg [a] Current SCNWRAP
Arg [b] Current SCNBASE
Arg [c] dependentSCN WRAP
Arg [d] dependentSCN BASE
Arg [e] Where present this is theDBA where the dependent SCN came from.
ORA-00600: internal error code, arguments: [2662], [0], [
說明資料檔案的scn高於redoscn
此時只有把redo的scn一直往前追趕
兩種辦法:
如果差別少,那麼新增上邊兩個隱含引數,然後重複去open resetlogs,如下:
A.新增引數
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
B回覆資料庫
Sql>recoverdatabase until cancel using backup controlfile ;
Cancel
A. 開啟資料庫
Sql>alterdatabase open resetlogs;
嘗試多次,直到開啟為止
如果差別多,通過新增adjust_scn來開啟,如下:
Oracle 10g以後,需要增加此引數
*._allow_error_simulation=true
如果資料庫mount狀態下做:
alter session set events '10015 trace nameadjust_scn level 1';
如果資料庫開啟:
alter session set events'IMMEDIATE trace name ADJUST_SCN level 1';