丟失undo檔案和隱含引數_allow_resetlogs_corruption恢復
今早的pub的一個帖子引起了自己的興趣,說到是錯誤刪除undo表空間資料檔案無法開啟,此時如果我們有恢復,那直接restore然後recover就行了!模擬下不用備份集恢復的情況吧!
關閉資料庫在os上刪除資料檔案13
SQL> shutdown abort;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 524288000 bytes
Fixed Size 1249968 bytes
Variable Size 390073680 bytes
Database Buffers 130023424 bytes
Redo Buffers 2940928 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 13 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 13: 'D:ORACLEPRODUCT10.2.0ORADATAORCLUNTBSO02.DBF'
SQL> alter database datafile 13 offline drop;
資料庫已更改。
Alter database datafile 13 offline drop並不會刪除此資料檔案,只是將資料檔案離線
歸檔模式:alter database datafile 'file_name' offline 和 offline drop 沒有什麼區別,因為都需要進行介質恢復。
非歸檔模式: 更多是offline drop
SQL> alter database open;
資料庫已更改。
剛開始自己想直接把這個資料檔案從untbso02表空間刪掉,不過報錯了!
資料庫已經open,如果我們刪除untbso02表空間的這個資料檔案13了
SQL> alter tablespace untbso02 drop datafile 13;
alter tablespace untbso02 drop datafile 13
*
第 1 行出現錯誤:
ORA-03263: 無法刪除表空間 UNTBSO02 的第一個檔案
表空間的第一個資料檔案無法刪除,首先儲存的表空間的後設資料
如果此時刪除表空間untbso02的其他檔案了,下面的datafile 6是先前已經建好的
SQL> alter tablespace untbso02 drop datafile 6;
alter tablespace untbso02 drop datafile 6
*
第 1 行出現錯誤:
ORA-03262: 檔案非空
SQL> alter tablespace untbso02 drop datafile 6;
alter tablespace untbso02 drop datafile 6
*
第 1 行出現錯誤:
ORA-03264: 無法刪除本地管理的表空間中的離線資料檔案
如果此時我們建立一個空的資料檔案則可以動態刪除。
SQL> alter tablespace untbso02 add datafile 'd:test01.dbf' size 10m;
表空間已更改。
SQL> alter tablespace untbso02 drop datafile 'd:test01.dbf';
表空間已更改。
看來對錶空間中的資料檔案只能在oracle中刪除非空和非第一個和online的資料檔案。
這裡重建一個undo刪除原來的undo
SQL> drop tablespace untbso02 including contents and datafiles;
表空間已刪除。
SQL> create tablespace undotbnew datafile 'd:oracleproduct10.2.0oradataorcl
undotbnew01.dbf' size 50M;
表空間已建立。
SQL> alter system set undo_tablespace=undotbnew scope=spfile;
系統已更改。
但是此時個人在這裡還是有個疑問的:此時我們刪除預設的undo表空間,由於資料庫是非正常關閉的,此時重啟資料庫時,很可能需要使用undo來恢復資訊,而由於丟失了undo表空間資料檔案,此時那部分undo資訊可能不存在了而使資料出現丟失了。
不過這裡如果有備份歸檔,那麼恢復將是非常輕鬆地事情的。
這裡說下隱含引數_allow_resetlogs_corruption的特殊恢復:
無備份,如果current重做日誌或者active日誌丟失順壞,非正常關閉會丟失提交的資料,由於意外關閉,空間檔案的stop scn和資料檔案頭的啟動scn不一致,而不一致是資料庫無法開啟的最終原因!而oracle提供了一個隱含引數_allow_resetlogs_corruption用於跳過一致性檢索強制開啟資料庫.
這裡就簡單列出其中的操作
Shutdown abort
Alter system set “_allow_resetlogs_corruption”=true scope=spfile
Startup mount
Recover database using backup controlfile until cancel
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 2080349273 (在 11/25/2011 14:36:15 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2011_11_25O1_MF_1_
174_%U_.ARC
ORA-00280: 更改 2080349273 (用於執行緒 1) 在序列 #174 中
指定日誌: {
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF'
ORA-01112: 未啟動介質恢復
Alter database open resetlogs
此時比較幸運順利開啟了,之前第一次測試出現一大堆的ora-00600錯誤,然後馬上exp所有資料,重建資料庫imp。
另一次測試open resetlogs階段出現的ora-00600
Errors in file d:oracleproduct10.2.0adminorcludumporcl_ora_460.trc:
ORA-00600: 內部錯誤程式碼, 引數: [2662], [0], [2080349279], [0], [2109503153], [4194313], [], []
Fri Nov 25 17:23:09 2011
Errors in file d:oracleproduct10.2.0adminorcludumporcl_ora_460.trc:
ORA-00600: 內部錯誤程式碼, 引數: [2662], [0], [2080349279], [0], [2109503153], [4194313], [], []
Fri Nov 25 17:23:09 2011
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Fri Nov 25 17:23:09 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_pmon_2992.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:09 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_lgwr_3816.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:09 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_dbw0_3024.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:09 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_mman_2516.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:10 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_p001_408.trc:
ORA-00600: internal error code, arguments: [15784], [600], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:10 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_psp0_3416.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:11 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_p000_3396.trc:
ORA-00600: internal error code, arguments: [15784], [600], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:11 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_ckpt_1848.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:13 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_reco_2420.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
Fri Nov 25 17:23:13 2011
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_smon_1212.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
關於上述ora-0060錯誤等到自己對oracle有更深入的瞭解後再來對此處理吧!
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1056541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 引數檔案控制檔案和資料檔案丟失的恢復
- Oracle 隱含引數 : _allow_resetlogs_corruptionOracle
- undo表空間檔案丟失恢復(1)--有備份
- 控制檔案丟失恢復
- 【控制檔案丟失恢復】
- 控制檔案丟失恢復(二)
- 恢復丟失的控制檔案
- 控制檔案全部丟失恢復
- 【恢復】Redo日誌檔案丟失的恢復
- 開啟 控制檔案自動備份下,引數檔案、控制檔案全部丟失恢復
- 資料檔案丟失的恢復
- 控制檔案全部丟失的恢復
- 控制檔案部分丟失的恢復
- Oracle Password檔案丟失的恢復Oracle
- 資料檔案丟失如何恢復
- 控制檔案丟失的RMAN恢復
- RMAN恢復案例:丟失全部資料檔案恢復
- 2.7.10 恢復丟失或損壞的伺服器引數檔案(SPFILE)伺服器
- undo表空間檔案丟失恢復(2)--無備份有redo的情況下恢復
- undo表空間檔案丟失恢復(3)--無備份無redo的情況下恢復
- undo表空間檔案丟失恢復(4)--無備份無recover的情況下恢復
- 引數檔案恢復
- 當前控制檔案全部丟失恢復
- Oracle 各種檔案丟失的恢復Oracle
- 電腦檔案丟失資料恢復資料恢復
- oracle資料庫正常關閉狀態下丟失undo檔案的恢復Oracle資料庫
- undo檔案丟失或損壞
- 【備份恢復】恢復 丟失已歸檔重做日誌檔案
- 恢復案例:無歸檔,掉電,控制檔案全部丟失恢復
- 恢復案例:無歸檔,丟失全部控制檔案、日誌檔案恢復案例
- 剪下的檔案還能恢復嗎,恢復剪貼丟失的檔案
- 非歸檔丟失日誌檔案的恢復
- 【備份恢復】 丟失一個控制檔案 之恢復操作
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- RMAN恢復案例:丟失非系統資料檔案恢復
- 無備份丟失部分資料檔案和控制檔案恢復 [轉]
- RMAN恢復案例:無恢復目錄,丟失全部資料檔案、控制檔案、日誌檔案恢復
- 丟失的隨身碟檔案如何恢復?