Backup And Recovery User's Guide-為TSPITR做計劃和準備

LuiseDalian發表於2014-03-01

TSPITR做計劃和準備

步驟1:為TSPITR選擇正確的目標時間

TSPITR選擇正確的目標時間SCN是非常重要的。

TSPITR使表空間聯機之後,不能使用表空間聯機之前做的備份。

 

如果有恢復目錄,則可以執行重複的TSPITR操作到不同的目標時間,因為目錄中包含表空間的歷史資訊。

如果RMAN只使用一個控制檔案,只有在刪除表空間之後TSPITR才可能執行,因為控制檔案沒有表空間的歷史資訊。

此時,RMAN只知道表空間的當前集合。TSPITR執行的表空間有一個建立時間,與它被聯機的時間相同。

 

為了調查資料的歷史狀態來確認TSPITR的目標時間,可以使用閃回查詢

Oracle事務查詢閃回版本查詢來找到不希望的改變發生的時間點。

步驟2:確定恢復集合

初始時,恢復集包含你想恢復的表空間的資料檔案。

然而你需要的表空間中的物件與其它表空間的物件有有關係(如約束),則在執行TSPITR之前必須考慮到這些關係。

此時有如下選擇:

n  將包含關聯物件的表空間新增到恢復集。

n  移除關係

n  TSPITR過程中掛起關係

識別和解決主庫上的依賴關係

RMAN TSPITR要求表空間是自包含的,並且在表空間中沒有SYS擁有的物件。

使用DBMS_TTS.TRANSPORT_SET_CHECK過程來定義表空間外的物件,識別跨越恢復集邊界的物件之間的關係。

如果TRANSPORT_SET_VIOLATIONS檢視返回行,則必根據上一節提供的方法來調查或修正這些問題

 

注意

如果在恢復集中的一個或多個表空間被刪除了,RMAN TSPITR不能夠執行DBMS_TTS.TRANSPORT_SET_CHECK過程。

在這種情況下,當輔助例項資料泵匯出發生時,DBMS_TTS.TRANSPORT_SET_CHECK被執行。

RMAN TSPITR一樣,如果匯出操作遇到了任何非自包含的表空間,匯出操作會失敗。

 

記錄在這個步驟中執行的所有操作,這樣可以在完成TSPITR之後重新建立任何掛起的或移除的關係。

只有當TRANSPORT_SET_VIOLATIONS檢視針對恢復集中的表空間是空的時候,再繼續TSPITR

--對於包含toolsusers表空間的初始恢復集如何使用DBMS_TTS.TRANSPORT_SET_CHECK 過程。

--查詢可傳輸表空間違背表來管理依賴關係,當所有的關係被管理之後,這個查詢沒有返回行

BEGIN

   EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('USERS,TOOLS', TRUE,TRUE);

END;

/

SELECT * FROM  TRANSPORT_SET_VIOLATIONS;

步驟3:識別和保留在TSPITR之後丟失的物件

當在表空間上執行RMAN TSPITR,則在目標恢復時間點之後的物件的改變都丟失。

可以在它們被識別之後保留這些物件,通過在TSPITR之前匯出(使用資料庫泵匯出工具)

它們並在之後匯入(使用資料泵匯入工具)它們來保留。

 

為了確定在TSPITR過程上丟失的物件,查詢主庫上的TS_PITR_OBJECTS_TO_BE_DROPPED檢視。

列名

意義

OWNER

被刪除的物件的所有者

NAME

經歷TSPITR之後丟失的物件的名稱

CREATION_TIME

對像建立時間時間戳

TABLESPACE_NAME

包含物件的表空間的名稱

過濾檢視檢視建立時間在TSPITR目標時間點之後物件。

 

場景:

恢復集包含userstools

恢復點是2007.12.2 7:03:11

SELECT OWNER, NAME, TABLESPACE_NAME, TO_CHAR(CREATION_TIME, 'YYYY-MM-DD:HH24:MI:SS')

FROM TS_PITR_OBJECTS_TO_BE_DROPPED

WHERE TABLESPACE_NAME IN ('USERS','TOOLS')

AND CREATION_TIME > TO_DATE('02-NOV-07:07:03:11','YY-MON-DD:HH24:MI:SS')

ORDER BY TABLESPACE_NAME, CREATION_TIME;

 

作為一選擇,如何你有表空間的SCN,可以使用轉換函式來確定與SCN相關的時間戳

如果恢復表空間usestoolsSCN1645780,則可以如下確定被刪除的物件

SELECT OWNER, NAME, TABLESPACE_NAME, TO_CHAR(CREATION_TIME,'YYYY-MM-DD:HH24:MI:SS')

FROM TS_PITR_OBJECTS_TO_BE_DROPPED

WHERE TABLESPACE_NAME IN ('USERS','TOOLS')

AND CREATION_TIME > TO_DATE(TO_CHAR(SCN_TO_TIMESTAMP(1645870), 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

ORDER BY TABLESPACE_NAME, CREATION_TIME;

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

相關文章