ORACLE 回滾段表空間資料檔案丟失或損壞處理方法(1) (轉)
問題描述:
這是一個回滾段表空間資料丟失或損壞的情景,這時不能識別相應的資料檔案。當你試圖startup資料檔案時會報ORA-1157,ORA-1110,並且可能會伴隨著標識操作級別的錯誤,比如ORA-7360。當你試圖以shutdown normal或shutdown immediate關閉時會導至ORA-1116,ORA-1110,並可能伴隨標識級別的錯誤,比如ORA-7368,有時以正常方式shutdown資料庫根本shutdown不下來。
警告:
文章中所提及的步驟是供oracle的全球技術支援使用的。特別是步驟6中的_corrupted_rollback_segments引數,使用後需要重建資料庫,在使用這個參前請觀察一下所有其它的選項。
解決方法解釋:
如下的解決方法取於檢測問題出現時資料庫所處於狀態:
I. 資料庫是處於關閉狀態的。
試圖開啟資料庫時報ORA-1157和ORA-1110錯誤,這時的解決方法取於資料庫是否是正常shutdown的(使用normal或immediate選項。
I.A.資料庫是正常shutdown的
如果資料資料庫是正常shutdown的,最簡單的解決方法是以offline drop選項刪除丟失或損壞的資料檔案,以restriceted模式打個資料庫,刪除並重建這個資料檔案所屬的那個回滾表空間。如果資料庫是以shutdown abort或自己崩潰掉的則不要遵循這個過程。
步驟如下:
1、確認資料庫是正常shutdown的。可以檢查alter.log這個檔案,定位到最後幾行看是否可以看到如下的資訊:
"alter database dismount
Completed: alter database dismount"
這當然也包括以正常方式shutdown,接然試圖啟動資料庫確失敗的狀況。如果最近一次你是以shutdown abort方式關閉資料庫的或資料庫是自己crashed掉的,你應用使用下面的I.B的方法。
2、在init
3、以restricted模式mount資料庫
STARTUP RESTRICT MOUNT;
4、Offline drop丟失或損壞的那個資料檔案。
ALTER DATABASE DATAFILE '
5、開啟資料庫
ALTER DATABASE OPEN;
如果返回"Statement processed"這條資訊,轉到第7步.
如果得到ORA-604,ORA-376,和ORA-1110錯誤,轉到第6步。
6、因為開啟資料庫失敗,shutdown掉資料庫並且編輯int
_corrupted_rollback_segments = (
這個引數應當包含ROLLBACK_SEGMENTS中所有的回滾段。
需要注意的是這個引數只能在指定的情況下或在oracle的全球持術支援的指導下才應使用,然後以restricted模式開啟資料庫:
STARTUP RESTRICT
7、刪除掉那個檔案所屬的回滾段表空間。
DROP TABLESPACE
8、重建回滾段表空間及回滾段,建立完後使它們online.
9、使資料庫所有都可用。
ALTER SYSTEM DISABLE RESTRICTED SESSION;
10、在init
I.B.資料庫不是正常shutdown的
這種情況,資料庫最近一次是用shutdown abort或crashed掉關閉,回滾段中幾乎一定包含著活動的事務。因此,壞的那個資料檔案不能離線(offline)或是drop掉,你必需從恢復這個檔案。如果資料為是處於非歸檔模式的,只有最近的一些事務日誌還沒有被重寫掉的情況你才能成功恢復這個檔案。如果這個檔案的備份也是無效的,聯絡一下oracle的技術支援吧。
步驟如下:
1、從備份中恢復丟失的那個資料檔案.
2、mount 上資料庫
3、如下的查詢:
FILE#,NAME,STATUS FROM V$DATAFILE;
如果資料檔案的狀態是offline的,你必需先把它聯機了:
ALTER DATABASE DATAFILE '
4、執行如下的查詢:
SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE#
FROM V$LOG V1, V$LOGFILE V2
WHERE V1.GROUP# = V2.GROUP# ;
這將列出所有的聯機的重做日誌和他們的序號及首次改變號(first change numbers).
5、如果這個資料庫是非歸檔模式的,執行如下的查詢:
SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;
如果其中的CHANG#比4中的最小的那個FIRST_CHANGE#大的話,用聯機日誌就可以完成恢復。
6、如果CHANG#比4中的最小的那個FIRST_CHANGE#小,則資料庫是不能恢復的,可以聯絡一下oracle的技術支援。
譯者插入:如果你真是非歸檔方式且這個檔案的備份也是無效的,如果你認為可以丟失回滾段中的那事務,你可以用I.A中從第6步的方法,這時可以開啟資料庫,應立即做一個備份,因為庫中的資料有些不一致。
RECOVER DATAFILE '
7、確認所有的日誌都被恢復,只到你收到"Media recovery complete"資訊。
8、開啟資料庫
待續
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981697/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 回滾段表空間資料檔案損壞解決方法
- 回滾段表空間損壞處理(ORA-01552)處理方法
- ORACLE聯機日誌檔案丟失或損壞的處理方法(轉)Oracle
- Oracle聯機日誌檔案丟失或損壞的處理方法 (轉)Oracle
- Oracle聯機日誌檔案丟失或損壞的處理方法Oracle
- TEMP表空間的檔案丟失或損壞後的恢復
- undo檔案丟失或損壞
- INDEX表空間檔案丟失或者損壞的恢復Index
- 資料檔案損壞、丟失
- oracle中undo表空間丟失處理方法Oracle
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- sysaux表空間檔案損壞的處理(zt)UX
- 關於丟失表空間資料檔案的處理方式
- oracle回滾段 undo 表空間Oracle
- 備份與恢復--資料檔案損壞或丟失
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- UNDO表空間資料檔案丟失處理(一)預備知識
- UNDO表空間資料檔案丟失處理(二)正常關閉資料庫資料庫
- Oracle不同檔案丟失/損壞的恢復方法Oracle
- UNDO表空間損壞的處理
- 資料檔案丟失損壞的恢復--
- Oracle資料庫聯機日誌檔案丟失處理方法(1)Oracle資料庫
- coreldraw檔案丟失(損壞)的恢復處理辦法
- Oracle重做日誌檔案損壞或丟失後的恢復Oracle
- rman 恢復---歸檔丟失and資料檔案損壞
- 磁碟損壞,system及部分資料檔案丟失
- oracle 普通表空間資料檔案壞塊Oracle
- 撤消表空間資料檔案丟失的恢復.
- 臨時表空間資料檔案損壞的解決
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- oracle - redo 損壞或刪除處理方法Oracle
- 表空間資料檔案故障處理
- undo表空間損壞的處理過程
- Oracle資料庫聯機日誌檔案丟失處理方法(總結)(轉)Oracle資料庫
- 系統表空間IO錯誤 資料損壞處理一則
- 控制檔案丟失處理方法
- . 資料庫臨時表空間的資料檔案的丟失資料庫
- 磁碟損壞導致資料檔案丟失的恢復