Oracle 11g ORA-01190: 控製文件或數據文件 1 來自最後一個 RESETLOGS 之前
我正在執行 Oracle 11GR2,企業版版本 11.2.0.3.0。今天我的一個測試數據庫損壞了。幸運的是,我在 Net Backup 伺服器上有 2 週的備份,所以我想,“這很簡單,我只是從最新的備份中恢復,大約 2 小時後我應該就好了!”
但我不斷收到這個 Oracle ORA-01190 錯誤。所以我提前 30 分鐘更改了我的恢復時間,然後我得到了同樣的錯誤。
SQL> alter database open; alter database open * ERROR at line 1: ORA-01190: control file or data file 1 is from before the last RESETLOGS ORA-01110: data file 1: '+DATA/t1/datafile/system_01.dbf'
更改還原時間後,出現此錯誤:
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01152: file 1 was not restored from a sufficiently old backup ORA-01110: data file 1: '+DATA/t1/datafile/system_01.dbf'
這是我的 rman 恢復腳本
run { allocate channel D1 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)'; allocate channel D2 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)'; allocate channel D3 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)'; allocate channel D4 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)'; set until time "to_date('16-MAR-2016 15:20:00','DD-MON-YYYY HH24:MI:SS')"; restore controlfile; restore database; alter database mount; recover database; alter database open resetlogs; }
我應該開始使用 SCN 方法來恢復我的數據庫嗎?是否有明確的指標讓我知道我可以從備份文件中恢復數據庫的時間?
太感謝了!
由於您已經完成了打開的重置日誌,因此您已經更改了化身,現在正嘗試恢復到以前的化身。從備份和恢復使用者指南:
目前化身中的 DBPITR 過程不同於非目前化身中的 DBPITR 到 SCN。在後一種情況下,您必須顯式執行 RESET DATABASE 以將數據庫重置為目標 SCN 的目前化身。此外,您必須從包含目標 SCN 的數據庫化身中恢復控製文件
在上述段落之後,手冊將逐步詳細說明該過程。
指定 ’to time’ 或 ’to scn’ 無關緊要。如果您指定 ’to time’,rman 將在內部將其轉換為 SCN。
.
我始終相信
oerr
實用程序提供的輸出有助於解決問題。Oerr: Oerr 是一個 Oracle 實用程序,它從標準 Oracle 消息文件中提取帶有建議操作的錯誤消息。
ORA-01190: 控製文件或數據文件字元串來自上次 RESETLOGS 之前
**原因:**當文件中的日誌重置資訊與控製文件不匹配時,嘗試使用數據文件。數據文件或控製文件是在最近的 ALTER DATABASE OPEN RESETLOGS 之前進行的備份。
**行動:**從更新的備份中恢復文件。
這就是為什麼我們用resetlog打開數據庫後要立即備份的重要原因。
ORA-01152: 文件字元串未從足夠舊的備份中恢復
**原因:**啟動了不完整的恢復會話,但應用的日誌數量不足以使數據庫保持一致。該文件仍然在最後應用的日誌的未來。此錯誤的最可能原因是在進行不完全恢復之前忘記從備份中恢復文件。
**行動:**要麼應用更多日誌,直到數據庫保持一致,要麼從較舊的備份中恢復數據庫文件並重複恢復。