Oracle 12c多租戶特性詳解:PDB 的備份與恢複
(題圖來自Oracle VP , Sally Piao的攝影佳作,感謝攝影師授權)
編輯手記:這一節我們將介紹多租戶中的備份與恢複,這篇文章來自<深入解析Oracle>一書的摘錄。
由於 PDB 的引入,Oracle 數據庫的備份和恢複也發生了很多變化,基於 PDB 級別的表空間、庫備份同時被支持。以下通過實際測試介紹一下12c中關於 PDB 的備份恢複過程。
⑴ 啟動歸檔模式
首先啟動數據庫的歸檔模式(需要以IMMEDIATE方式關閉數據庫,執行模式更改):
根據數據庫的實際情況,設置閃回恢複區(注意在生產環境中設置合理的閃回區非常重要):
嚐試使用RMAN連接到數據庫,注意12c中增加了新的用戶SYSBACKUP用於備份管理,並且RMAN中開始支持簡單的SQL查詢語句:
通過reportschema的命令,可以列出數據庫中的表空間和文件信息等,在12c的輸出中,臨時表空間作為一個獨立的信息部分被顯示出來:
⑵ 對 PDB 執行備份
在12c中支持對單個或多個PDB執行獨立的備份操作,如類似如下命令示範備份多個或單個PDB:
RECOVER操作也響應的可以針對PDB級別來進行:
以下命令對CDB$ROOT進行備份:
以下是對單個常規PDB進行備份的執行過程:
可以通過指定PDB名稱和表空間名稱的方式,對PDB中的表空間進行獨立備份,以下命令備份了名稱為ENMO的PDB內部的ENMO表空間文件:
同樣在備份時可以指定PLUS ARCHIVELOG參數,對歸檔日誌進行同時備份,以下是常規的命令示範:
⑶ 對PDB及PDB文件執行恢複
在執行恢複時,可以針對PDB或者PDB中的表空間進行,以下範例通過對於PDB ENMO中的係統表空間恢複,演示PDB的恢複過程:
以下測試演示了對PDB中的單個表空間進行在線恢複的過程。如果某個表空間受損,可以執行緊急的離線操作:
然後可以通過RMAN執行基於單個表空間進行恢複:
恢複完成之後可以將表空間在線,這就完成了恢複:
⑷ 對 PDB 執行不完全恢複
在12c中,Oracle 還支持基於單個 PDB 的不完全恢複,以下是一個示範的測試過程。
首先連接到 PDB,創建一個測試用戶:
接下來執行對於全庫的基礎的全庫備份:
接下來我們在數據庫中執行一個係列的數據操作,創建測試表,插入數據,然後刪除部分數據,記錄刪除前的 SCN 信息:
現在嚐試通過備份恢複數據庫至 SCN 3254957,也就是刪除數據之前的時間點。
在恢複之前需要首先關閉 PDB,執行 PDB 級別的 Restore 操作:
檢查數據表,數據已經恢複到刪除前的記錄數量:
注意在不完全恢複過程中,需要產生輔助實例,在後台會生成相應的日誌等目錄結構.以下是完成不完全恢複遺留在輔助目錄中的部分文件:
在輔助恢複中,生成了大量的臨時目錄和文件,以下是在我的測試環境中遺留的文件目錄:
以下是恢複過程中輔助實例告警日誌記錄的內容(保留部分重要內容供讀者參考):
最後更新:2017-07-18 11:33:11