【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)

yellowlee發表於2010-06-12

控制檔案全部丟失的情況

 

先看看resetlogsnoresetlogs

 

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: {=suggested | filename | AUTO | CANCEL}

 

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章