【問題處理】ORA-01113 file xxx need media recovery
問題說明
在資料庫以外當機或執行備份恢復時,可能會遇到ORA-01113 問題。 ORA-01113 錯誤通常伴隨著 ORA-01110 錯誤一起出現, ORA-01110 錯誤指向著報錯的檔名
ORA-01113: file 21 needs media recovery
ORA-01110: data file 21 : '/ u01/app/oracle/oradata / users02 .dbf'
原因分析
ORA-01113 錯誤表明,與控制檔案和其他資料檔案相比,該資料檔案不是最新的。 Oracle 的架構是極其緊密的,所有的資料庫檔案(包括資料檔案、 redolog 和控制檔案)在資料庫開啟或檢查點結束時必須同步。這就意味著所有的資料檔案的檢查點 SCN 必須相同。如果有一個特定的資料檔案不滿足這個情況,就會報 ORA-01113 錯誤。
例如,當將表空間置於熱備份時,其所有的資料檔案的檢查點SCN 將以當前值凍結,直到發出 end backup 指令。如果資料庫處於熱備時崩潰,你嘗試重新啟動它而不做恢復,那麼該表空間的其中一個資料檔案很有可能會報 ORA-01113 錯誤,因為它的 SCN 可能比其他表空間中的控制檔案和資料檔案的 SCN 要低。
同樣,使資料檔案offline 也會導致它的檢查點 SCN 被凍結。如果您只是嘗試 online 該檔案而不做任何恢復,那它的 SCN 可能比 redo log 檔案的 SCN 舊的多,就會產生 ORA-01113 錯誤。
解決方法
在恢復前執行以下操作
1) 啟動到mount 狀態
SQL> startup mount;
2) 執行以下查詢
SQL> SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE# FROM V$LOG V1, V$LOGFILE V2 WHERE V1.GROUP# = V2.GROUP# ;
這個查詢將列出所有的redolog 和它們各自的順序和最先更改的編號,接下來的步驟取決於發生 ORA-01113 的原因,我們依次討論
可能的原因及應對方法
發生ORA-01113 可能的原因如下:
1. 資料庫例項崩潰時,表空間處於熱備份狀態
2. 發生在從備份中恢復資料檔案或表空間後的啟動時
3. 嘗試online 資料檔案或表空間時
4. 當使用“ using backup controlfile ”選項做不完全恢復時
情況一:資料庫例項崩潰時,表空間處於熱備份狀態
1) 開啟資料庫至Mount
SQL> startup mount;
2) 執行以下查詢確定那個資料檔案處於熱備份狀態
SQL> SELECT V1.FILE#, NAME FROM V$BACKUP V1, V$DATAFILE V2 WHERE V1.STATUS = 'ACTIVE' AND V1.FILE# = V2.FILE# ;
3) 針對上面查詢的結果,執行以下內容
SQL> ALTER DATABASE DATAFILE ' filename ' END BACKUP;
4) 開啟資料庫
SQL> alter database open;
情況二:發生在從備份中恢復資料檔案或表空間後的啟動時
1) 開始資料庫至mount
SQL> startup mount;
2) 恢復資料檔案
SQL> recover datafile ' filename ';
如果恢復超過一個資料檔案,執行以下
SQL> recover tablespace tablespace_name;
如果恢復超過一個表空間,執行以下
SQL> recover database;
3) 確認每一個歸檔日誌,直到收到 "Media recovery complete"
如果系統提示輸入一個不存在的歸檔日誌,Oracle 可能需要一個或多個 redolog 來進行恢復。將 ORA-280 訊息中引用的序列號和 redolog 中的序列號進行比較。然後輸入序列號與請求的序列號想匹配的 redolog 的完整路徑。
4) 開啟資料庫
SQL> alter database open;
情況三:嘗試online 資料檔案或表空間時
1) 恢復資料檔案
SQL> recover datafile ' filename ' ;
如果恢復一個表空間,執行
SQL> recover tablespace tablespace_name;
如果恢復一個資料庫,執行
SQL> recover database;
2) 確認每一個歸檔日誌,直到收到 "Media recovery complete"
如果系統提示輸入一個不存在的歸檔日誌,Oracle 可能需要一個或多個 redolog 來進行恢復。將 ORA-280 訊息中引用的序列號和 redolog 中的序列號進行比較。然後輸入序列號與請求的序列號想匹配的 redolog 的完整路徑。
3) 開始資料庫
SQL> alter database open;
情況四:當使用“ using backup controlfile ”選項做不完全恢復時
如果使用“ recover database using backup controlfile ”選項恢復資料,而沒有指定“ until cancel ”選項,那麼在“ alter database open resetlogs ”時,可能會遇到 ORA-01113 錯誤。
1) 再次恢復資料庫
SQL> recover database using backup controlfile until cancel;
2) 過程中透過發出“ cancel ”命令取消恢復
3) 開啟資料庫
SQL> alter database open resetlogs;
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2755146/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-19815: WARNING: db_recovery_file_dest_size閃回區爆滿問題處理
- 【問題處理】ORA-00376 file xx cannot be read at this time
- Authentication failure 以及xxx is not in the sudoers file 問題的解決辦法AI
- ORA-01153: an incompatible media recovery is active
- 在 fish 終端下報錯 source: Error while reading file “xxx” 等問題ErrorWhile
- The Db2 Recovery History FileDB2
- golang json處理問題GolangJSON
- [git] git問題處理Git
- 併發問題處理方式
- Linux 問題處理集錦Linux
- 處理SQLServer errorlog滿問題SQLServerError
- 資料處理--pandas問題
- Ubuntu處理依賴問題Ubuntu
- PHP 開發版本問題處理PHP
- 【故障處理】TNS-04610問題
- JVM問題分析處理手冊JVM
- gc buffer busy acquire問題處理GCUI
- oracle SP2-問題處理Oracle
- 記憶體分配問題處理記憶體
- 如何處理 No DMARC Record Found 問題
- 如何處理HTTP 503故障問題?HTTP
- MySQL:亂碼問題處理流程MySql
- 【問題處理】IPC Send timeout detected
- log file sync等待事件處理思路事件
- OGG-01028 Recovery record is missing from log 的BUG處理
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- 二、Git 問題彙總及處理Git
- Redis 快取常見問題處理Redis快取
- Oracle日常問題處理ORA-04031Oracle
- .net異常處理的效能問題
- ORACLE問題處理十個指令碼Oracle指令碼
- repmgr 叢集雙主問題處理
- SpringBoot 2.6.7 處理跨域的問題Spring Boot跨域
- RAC磁碟頭損壞問題處理
- SpringBoot 2.7.0 處理跨域的問題Spring Boot跨域
- 問題:mybatis like 佔位符處理MyBatis
- options 請求跨域問題處理跨域
- ORA-01113異常處理_一鍵重新整理Oracle資料檔案scnOracle