Backup And Recovery User's Guide-恢復資料庫到祖先incarnation

LuiseDalian發表於2014-02-28

恢復資料庫到祖先incarnation

在當前的incarnation中的DBPITRDBPITR到一個非當前incarnation中的SCN是不同的。

在後者中你必須顯示地執行RESET DATABASE,設定incarnation為目標SCN當時的incarnation

你也必須從包含目標SCN的資料庫incarnation還原控制檔案。

 

n  RMAN連線到恢復目錄RESTORE CONTROLFILE命令只是搜尋當前的資料庫incarnation

搜尋在UNTIL子句中指定的最近的時間;

n  從非當前的incarnation還原控制檔案,必須執行LIST INCARNATION來識別目標資料庫incarnation

並把這個incarnation指定在RESET DATABASE TO INCARNATION命令中。

n  RMAN連線到恢復目錄,你不能在資料庫被MOUNT之前執行RESET DATABASE TO INCARNATION

因此你必須執行SET UNTIL,從自動備份還原控制檔案,然後MOUNT它。

場景:

n  RMAN連線到恢復目錄

n  具有目標資料庫trgt2007.10.2號開始的備份

n  2007.10.10號在這個資料庫上執行DBPITR,來改正一個早一點的錯誤。

DBPITR最後的OPEN RESETLOGS開始了一個新的incarnation

n  10.25號發現需要的關鍵資料在2007.10.8 8:00被刪除了,這個時間在當前的incarnation開始之前

練習:DBPITR到一個非當前的incarnation

--1. 啟動RMAN連線到目標資料庫和恢復目錄

--2. 確定在備份時資料庫的incarnation, 使用LIST INCARNATION來檢視目標時間點時的incarnationprimary key

LIST INCARNATION OF DATABASE trgt;

List of Database Incarnations

DB Key  Inc Key   DB Name   DB ID       STATUS     Reset SCN    Reset Time

------- -------   -------   ------      -------    ----------   ----------

1       2         TRGT      1224038686  PARENT     1            02-OCT-06

1       582       TRGT      1224038686  CURRENT    59727        10-OCT-06

-- 檢視Reset SCNReset Time列來識別當前的incarnation,並注意Inc Key列中的incarnation key

-- 本例中備份是在2007.10.2號做的,所以incarnation key = 2

--3. 確定資料庫被啟動,但沒有被MOUNT

STARTUP FORCE NOMOUNT

--4. 重設目標資料庫到第2步中獲取的incarnation

RESET DATABASE TO INCARNATION 2;

--5. 還原並恢復資料庫,RUN命令中執行下面的操作

--   a. 設定恢復的結束時間剛好在丟失資料之前

--   b. 分配沒有配置的、需要的通道

--   c. 10.2號的備份還原控制檔案並MOUNT

--   d. 還原資料檔案並且恢復資料庫.使用RECOVER DATABASE ... UNTIL執行DBPITR, 使資料庫到達目標時間10.8 7:55, 資料緊鄰丟失之前

RUN

{

  SET UNTIL TIME 'Oct 8 2007 07:55:00';

  RESTORE CONTROLFILE;

  # 沒有恢復目錄, 使用 RESTORE CONTROLFILE FROM AUTOBACKUP

  ALTER DATABASE MOUNT;

  RESTORE DATABASE;

  RECOVER DATABASE;

}

ALTER DATABASE OPEN RESETLOGS;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1097351/,如需轉載,請註明出處,否則將追究法律責任。

相關文章