【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)
控制檔案全部丟失的情況
先看看resetlogs和noresetlogs
Resetlogs | Noresetlogs
用於 alter database open語句,用來確定oracle是否將當前日誌序號重置為1,
將所有的當前未歸檔的日誌歸檔,包括當前日誌,丟棄任何沒有在恢復中應用的重做資訊,確保這些重做資訊將來不再被應用。
Oracle自動使用Noresetlogs,以下情況必須使用resetlogs:
1, 在進行不完全恢復之後,或者使用備份的控制檔案做了介質恢復之後
2, 在使用open resetlogs操作未完成之後
3, 在進行了flashback database操作之後
在建立的控制檔案載入之後,如果聯機日誌丟失了,則必須使用resetlogs,如果沒有丟失,則必須使用noresetlogs。
先在資料庫關閉的狀態下用os命令拷貝所有的控制檔案,作為備份,然後在open狀態下刪除所有控制檔案:
[oracle@localhost test10]$ cp control01.ctl control01.bak
[oracle@localhost test10]$ cp control02.ctl control02.bak
[oracle@localhost test10]$ cp control03.ctl control03.bak
mv control01.ctl control01.ctl_bak
mv control02.ctl control02.ctl_bak
mv control03.ctl control03.ctl_bak
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 192937984 bytes
Fixed Size 2019480 bytes
Variable Size 88084328 bytes
Database Buffers 96468992 bytes
Redo Buffers 6365184 bytes
ORA-00205: error in identifying control file, check alert log for more info
[oracle@localhost test10]$ mv control01.bak control01.ctl
[oracle@localhost test10]$ mv control02.bak control02.ctl
[oracle@localhost test10]$ mv control03.bak control03.ctl
SQL> alter database mount;
Database altered.
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: '/tpsys/ora/oracle/oradata/test10/system01.dbf'
SQL> recover database using backup controlfile until cancel;
ORA-00283: recovery session canceled due to errors
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-01110: data file 1: '/tpsys/ora/oracle/oradata/test10/system01.dbf'
這裡報錯,資料檔案1,即system01.dbf屬於一個孤兒版本
ORA-19909: datafile string belongs to an orphan incarnation
Cause: Either the specified datafile was restored from a backup that was taken during a period of time
that has already been discarded by a resetlogs operation, or Oracle cannot identify which database incarnation the file belongs to.
The alert log contains more information.
Action: Restore a backup of this file that belongs to either the current or a prior incarnation of the database.
If you are using RMAN to restore, RMAN will automatically select a correct backup.
因為異常關閉資料庫以後,資料檔案的stop scn為無窮大,而控制檔案的scn則是之前備份時的版本,
可以檢視當前資料庫的版本:
RMAN> list incarnation of database;
using target database control file instead of recovery catalog
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 TEST10 3379567601 PARENT 1 22-OCT-05
2 2 TEST10 3379567601 CURRENT 525876 11-JUN-10
這時候需要從之前備份的中restore資料檔案:
restore datafile 1;
.
.
然後告訴oracle使用的是備份的控制檔案來恢復資料庫,這時候對資料檔案作介質恢復,應用歸檔到控制檔案的scn。
SQL> recover database using backup controlfile;
ORA-00279: change 554568 generated at 06/11/2010 08:12:36 needed for thread 1
ORA-00289: suggestion :
/tpsys/ora/oracle/flash_recovery_area/TEST10/archivelog/2010_06_11/o1_mf_1_2_%u_
.arc
ORA-00280: change 554568 for thread 1 is in sequence #2
Specify log: {
Log applied.
Media recovery complete.
恢復成功以後需要以resetlogs來開啟資料庫,告訴資料庫將redolog的序號置為1, 確保未應用的歸檔以後不再應用。
SQL> alter database open resetlogs;
Database altered.
資料庫成功開啟
當然如果在關閉資料庫拷貝控制檔案的同時,也拷貝所有的資料檔案,那麼就不需要使用rman來轉儲資料檔案了,而是用拷貝的資料檔案,這也就是冷備份了。
在關閉狀態拷貝控制檔案以後,再進行一次開打,關閉操作,然後在關閉狀態刪除全部的控制檔案,則又有不同,
這時候拷貝的控制檔案版本比資料檔案老,使用recover database using backup controlfile untilcancel以後,會出現下列錯誤:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/tpsys/ora/oracle/oradata/test10/system01.dbf'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-665078/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(三)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(一)
- RMAN備份恢復之控制檔案的恢復(二)
- rman備份恢復-rman恢復資料檔案測試
- 【管理篇備份恢復】rman恢復測試(一) 表空間資料檔案
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(一)
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- 備份與恢復(Parameter 檔案恢復篇)
- 備份與恢復--利用備份的控制檔案恢復
- 【備份與恢復】控制檔案的恢復(不完全恢復)
- 【管理篇備份恢復】備份恢復基礎
- rman恢復控制檔案測試--log
- rman備份丟失控制檔案恢復
- 控制檔案恢復—從自動或二進位制備份中恢復
- 【備份恢復】丟失所有控制檔案,利用RMAN進行恢復操作
- rman恢復--丟失控制檔案的恢復
- 備份與恢復系列 十一 控制檔案的備份與恢復
- RMAN 備份與恢復深入解析(二)
- 恢復之利用備份在所有控制檔案丟失情況下恢復(二)
- 控制檔案恢復測試
- RMAN恢復控制檔案
- RMAN備份恢復測試指令碼指令碼
- Oracle備份與恢復【丟失控制檔案的恢復】Oracle
- 【備份恢復】利用 備份控制檔案到指定目錄下的控制檔案 恢復控制檔案
- MySQL備份恢復第二篇MySql
- 【備份恢復】 丟失一個控制檔案 之恢復操作
- 【備份與恢復】恢復受損的複用控制檔案
- RMAN基於備份控制檔案恢復失敗
- 控制檔案丟失恢復(二)
- 控制檔案的恢復方法(二)
- rman 恢復機制與恢復測試
- RMAN恢復 執行重要檔案RMAN恢復
- 使用rman恢復控制檔案
- 【備份恢復】 控制檔案多路徑
- 利用備份的控制檔案恢復
- 備份與恢復--重建控制檔案
- 控制檔案的備份和恢復