ORACLE_OCP之執行基於時間點恢復(PIRT)
阿新 • • 發佈:2021-01-06
ORACLE_OCP之執行基於時間點恢復(PIRT)
- 文章目標:
- 區分和描述表,表空間和資料庫的時間點恢復(PITR)
- 在萬不得已時,確定PITR是一個好的解決方案
- 列出執行時間點恢復時發生的操作
- 確定時間點恢復的正確目標時間
- 執行自動的TSPITR
- 從備份執行表恢復
一、時間點恢復
- 時間點恢復的好處:
- 快速將一個或多個物件恢復到更早的時間
- 對其他物件沒有影響
- 恢復範圍:
- Table Point-in-Time Recovery (TPITR)
- Tablespace Point-in-Time Recovery (TSPITR)
- Database Point-in-Time Recovery (DBPITR)
二、何時使用TSPITR
- TSPITR可在以下情況下使用:
- 恢復錯誤的TRUNCATE TABLE語句後丟失的資料
- 從表的邏輯損壞中恢復
- 撤消僅影響資料庫一部分的批處理作業或DML語句的影響
- 將邏輯架構恢復到與物理資料庫其餘部分不同的位置
- 恢復刪除的表空間
- 可以在表空間聯機之前的某個時間點重複執行,而無需恢復目錄
三、PITR術語
- 目標時間:將物件恢復到的時間點或SCN
- 恢復集:對於表空間,要恢復的資料檔案
- 輔助集:不屬於恢復集的必需資料檔案。 它通常包括:
- SYSTEM表空間(元資料)
- UNDO表空間 (原資料 前映象資料)
- 臨時表空間
- 輔助目標:儲存檔案的磁碟位置
四、表空間時間點恢復:體系結構
- 1 建立輔助例項,啟動它並連線到它
- 2 使將要恢復的表空間離線
- 3 從目標時間之前的時間點將備份控制檔案還原到輔助例項
- 4 將資料檔案從恢復集和輔助集還原到輔助例項
- 5 將還原的資料檔案恢復到指定時間
- 6 使用RESETLOGS選項開啟輔助資料庫
- 7.將有關已恢復表空間中物件的字典元資料匯出到目標資料庫
- 8.關閉輔助例項。
- 9.將字典元資料從輔助例項匯入到目標例項
- 10.刪除所有輔助設定檔案
五、為PITR做準備
- 要準備PITR,請執行以下步驟:
- 確定正確的目標時間。
- 確定恢復集中需要什麼。
- 識別並保留PITR之後將丟失的物件。
六、確定正確的目標時間
- 在執行TSPITR並使表空間聯機之後,您將無法使用較早的備份(除非您正在使用recovery catalog)。
- 使用以下方法確定正確的目標時間:
- Flashback Query
- Flashback Transaction Query
- Flashback Version Query
- TSPITR的簡單替代方案:閃回資料(如果仍可作為撤消使用)
七、確定恢復集的表空間
-
如果要恢復的表空間中的物件與其他表空間中的物件有關係,則可以:
- 將包含相關物件的表空間新增到恢復集中
- 在TSPITR期間暫停和其他物件的關係
- 刪除關係
-
使用DBMS_TTS.TRANSPORT_SET_CHECK過程確定恢復集中的表空間是否是自包含的.
DBMS_TTS.TRANSPORT_SET_CHECK ('USERS', 'EXAMPLE');
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
八、識別將丟失的物件
- 在目標恢復時間之後,在表空間中建立的一些物件將丟失。
- 查詢TS_PITR_OBJECTS_TO_BE_DROPPED,以確定在TSPITR之後將丟失哪些物件。
- 在TSPITR之前使用“匯出”,在TSPITR之後使用“匯入”以保留並重新建立丟失的物件。
九、執行RMAN TSPITR
- 全自動TSPITR
- 指定輔助目標
- RMAN管理TSPITR的所有方面。
- 這是推薦的方法。
- 具有自動輔助例項的定製TSPITR
- 這基於全自動的TSPITR。
- 自定義檔案的位置。
- 指定初始化引數。
- 指定通道配置。
- 使用您自己的輔助例項的TSPITR
- 配置和管理輔助例項。
十、執行全自動TSPITR
-
在目標例項上配置TSPITR所需的通道。
-
使用AUXILIARY DESTINATION選項指定輔助目標.
RMAN> CONNECT TARGET
RMAN> RECOVER TABLESPACE users, example
UNTIL TIME ‘2007-06-29:08:00:00’
AUXILIARY DESTINATION
‘/u01/app/oracle/oradata/aux’; -
恢復指定的表空間並使它們聯機.
十一、改善TSPITR效能
RUN
{
SET NEWNAME FOR DATAFILE '$ORACLE_BASE/oradata/orcl/users01.dbf'
TO ‘/u01/backup/users01.dbf';
RECOVER TABLESPACE users UNTIL SEQUENCE 1300 THREAD 1;
}
- 配置NEWNAME(AUXNAME)以獲取輔助集資料檔案映象副本的持久替代位置
- 在RUN命令持續時間內將NEWNAME設定為其他位置(改變資料檔案路徑)
十二、使用RMAN管理的輔助例項執行RMAN TSPITR
- 重新命名或重定位您的恢復集資料檔案。
- 為一些或所有輔助設定資料檔案指定輔助目標以外的位置。
- 在TSPITR之前建立資料檔案的映象副本備份。
- 對輔助例項使用不同的通道配置。
- 為RMAN管理的輔助例項指定不同的初始化引數。
十三、使用您自己的輔助例項執行RMAN TSPITR
- 不推薦,但受支援
- 執行以下步驟:
- 1.為輔助例項建立一個Oracle密碼檔案。
- 2.為輔助例項建立一個初始化引數檔案。
- 3.驗證Oracle Net與輔助例項的連線。
- 4.在NOMOUNT模式下啟動輔助例項。
- 5.將RMAN客戶端連線到目標例項和輔助例項。
- 6.執行RECOVER TABLESPACE命令。
十四、對RMAN TSPITR進行故障排除
- 檔名衝突:使用SET NEWNAME,CONFIGURE AUXNAME和DB_FILE_NAME_CONVERT時,請確保沒有名稱衝突。
- RMAN無法識別帶有UNDO段的表空間
- TSPITR失敗後手工重新啟動輔助例項:關閉並以NOMOUNT模式重新啟動。
十五、從備份中恢復表
- 何時從RMAN備份恢復表和分割槽表:
- 少量表(no TSPITR)
- 不在獨立的表空間中(no TSPITR)
- Purged tables(no Flashback drop)
- 超出可用的UNDO(no Flashback Table)
- 在結構性DDL更改後(no Flashback Table)
十六、表恢復:圖形概述
- 1 RMAN使用先前建立的備份將表和分割槽表恢復到指定的時間點。
滿足前提條件,並使用RECOVER命令提供以下輸入(或提供以下引數):- 要恢復的表或分割槽表的名稱
- 表或分割槽表需要恢復的時間點
- 恢復的表或分割槽表是否必須匯入到目標資料庫中(資料泵匯入)
- RMAN使用您的輸入來自動執行恢復指定表或分割槽表的過程。
- 2 RMAN根據您的規範確定備份。
- 3 RMAN建立一個輔助例項。
- 4 RMAN會在指定的時間點之前將表或分割槽表恢復到該輔助例項中。
- 5 RMAN建立一個包含已恢復物件的資料泵匯出轉儲檔案。(元資料 使用者資料等)
- 6 RMAN將恢復的物件匯入目標資料庫。(資料泵匯入)
十七、前提條件和侷限性
- 要從RMAN備份恢復表和分割槽表,目標資料庫必須是:
- In read/write mode
- In ARCHIVELOG mode
- 設定為12.0或更高版本以恢復表或分割槽表。
- 恢復的侷限性:無法恢復以下位置的表和分割槽表:
- SYS SCHEMA
- SYSTEM和SYSAUX表空間
- 備用資料庫(DG ADG)
十八、指定恢復時間點
- 通過指定表和表分割槽以使其恢復到原來的狀態:
- UNTIL SCN integer:系統更改號(SCN)
- UNTIL TIME 'date_string’:日期中的時間
- 格式化:
- NLS_LANG和NLS_DATE_FORMAT環境變數中的一個,(環境變數)
或 - 日期常量,例如SYSDATE – 5
- NLS_LANG和NLS_DATE_FORMAT環境變數中的一個,(環境變數)
- UNTIL SEQUENCE integer (THREAD integer):日誌序號和執行緒號
十九、表恢復的處理步驟
-
1.執行計劃任務,並使用CONNECT TARGET命令啟動RMAN會話。
-
2.輸入RECOVER TABLE命令。
-
3.RMAN根據您的規範確定備份。
-
4.如果指定了RMAN,則使用AUXILIARY DESTINATION子句建立一個輔助例項。
-
5.RMAN會在指定的時間點之前將表或分割槽表恢復到該輔助例項中。
-
6.RMAN建立一個數據泵匯出轉儲檔案,該檔案包含具有DUMP FILE = name和DATAPUMP DESTINATION = <OS path>的已恢復物件。
注意:如果在必須建立轉儲檔案的位置中存在名稱為“ DUMP FILE”指定的檔案,則匯出將失敗。
-
7.除非您指定了NOTABLEIMPORT,否則RMAN會將恢復的物件匯入目標資料庫。
-
8.RMAN可以選擇使用REMAP TABLE和REMAP TABLESPACE子句重新命名已恢復的表或分割槽表。 (現有物件不變。)
注意:如果重新對映表,則從匯入中將排除相關物件。 您必須重新建立索引和約束