【管理篇備份恢復】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 增量備份恢復
- 12 使用RMAN備份和恢復檔案
- Oracle 備份恢復篇之RMAN catalogOracle
- RMAN備份恢復典型案例——異機恢復未知DBID
- SqlServer備份和恢復(二)SQLServer
- RMAN備份異機恢復
- Oracle RMAN恢復測試Oracle
- 【PG備份恢復】pg_basebackup 多表空間備份恢復測試
- ORACLE備份&恢復案例二(轉)Oracle
- RMAN備份恢復效能優化優化
- RAC備份恢復之Voting備份與恢復
- 與控制檔案有關的恢復(二)
- MySQL入門--備份與恢復(二)MySql
- ORACLE DG從庫 Rman備份恢復Oracle
- rman備份異機恢復(原創)
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- XFS檔案系統的備份、恢復、修復
- RMAN備份恢復典型案例——資料檔案存在壞快
- MySQL 非常規恢復與物理備份恢復MySql
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- dg丟失歸檔,使用rman增量備份恢復
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 備份和恢復
- mydumper備份恢復
- Mysql備份恢復MySql
- RMAN備份恢復典型案例——ORA-00245
- RMAN增量恢復
- rman恢復控制檔案的一個小錯誤
- 詳解叢集級備份恢復:物理細粒度備份恢復
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Linux中XFS檔案系統的備份,恢復,修復Linux
- 備份恢復Lesson 04.Using the RMAN Recovery Catalog
- 檔案的基本管理和XFS檔案系統備份恢復
- MySQL 備份與恢復MySql
- redis 備份和恢復Redis