如果備份不可恢複,那麼它就沒有用處。 RMAN 提供了一種不需要還原資料庫就能檢查資料庫還原能力的方法,並且為使用者提供了幾個檢查選項。
1、restore preview命令
該命令可以查看RMAN 使用哪個備份組來執行特定的恢複。 該命令將列出還原所需的備份組的詳細資料。
RMAN> restore database preview;
啟動 restore 於 08-7月 -10
使用通道 ORA_DISK_1
備份組列表
===================
BS 關鍵字 類型 LV 大小 裝置類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
7 Full 987.05M DISK 00:01:40 08-7月 -10
BP 關鍵字: 7 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100708T161959
段名:F:/BACKUP/BL_07LI9IPG_1_1.BAK
備份組 7 中的資料檔案列表
檔案 LV 類型 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
1 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSTEM01.DBF
2 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSAUX01.DBF
3 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/UNDOTBS01.DBF
4 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/USERS01.DBF
5 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/BL01.DBF
db_unique_name 為 BL 的資料庫的歸檔日誌副本列表
=====================================================================
關鍵字 線程式列 S 時間下限
------- ---- ------- - ----------
8 1 12 A 08-7月 -10
名稱: D:/ARCHIVELOG/BL_ARC0000000012_0723658881.0001
9 1 13 A 08-7月 -10
名稱: D:/ARCHIVELOG/BL_ARC0000000013_0723658881.0001
介質恢複啟動 SCN 是 1041819
恢複範圍必須超出 SCN 1041819 才能清除資料檔案模糊性
完成 restore 於 08-7月 -10
2、用verify 和 check logical參數的restore 命令
Restore 命令提供一些驗證資料庫可恢複和備份有效選項。 首先,可以使用backup命令的validate參數使RMAN 檢查備份,以確定資料庫是可恢複的。 使用validate選項時,Oracle會檢查用於恢複資料庫的最新備份組以確定這個備份組是完整的,還會檢查操作需要使用的所有資料檔案副本和歸檔的重做記錄備份集,並確定他們也是完整的。 此外,validate 選項會對備份組執行全面的驗證操作,以確保這些備份的完整性。 驗證操作的時間不會太長,並且這是確保資料庫可恢複的一種方法。
RMAN> restore database validate;
啟動 restore 於 08-7月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始驗證資料檔案備份組
通道 ORA_DISK_1: 正在讀取備份片段 F:/BACKUP/BL_07LI9IPG_1_1.BAK
通道 ORA_DISK_1: 段控制代碼 = F:/BACKUP/BL_07LI9IPG_1_1.BAK 標記 = TAG20100708T161959
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 驗證完成, 用時: 00:00:26
完成 restore 於 08-7月 -10
此外,使用restore 命令的check logical 參數能夠更完全地檢查最新備份組。 這個命令使RMAN檢查資料庫的備份,如果這些備份通過物理訛誤檢查,還要檢查備份的資料和索引段中是否存在邏輯訛誤。 如果發現邏輯訛誤,Oracle 會採用下面的一種方法來響應錯誤:
(1) 如果設定了maxcorrupt參數,並且還原檢查邏輯操作期間的訛誤數沒有超過這個參數值,RMAN就會在Oracle 的v$database_block_corruption 視圖中填充訛誤的資料區塊列表。
(2) 如果還原檢查邏輯操作期間的訛誤數超過了maxcorrupt參數值,操作就會終止。
在預設情況下,maxcorrupt 參數被設定為0,因此任何邏輯訛誤都會導致檢查操作的失敗。 通過set 命令可以修改預設的maxcorrupt參數值,但只能在run代碼塊的範圍內使用這條命令。 此外,maxcorrupt參數是為每個資料檔案單獨設定的,而不是為所有的資料檔案設定。
RMAN> run
2> {
3> set maxcorrupt for datafile 1,2,3 to 10; -- 將1,2,3datafile 的maxcorrupt 設為10
4> restore database check logical validate;
5> }
正在執行命令: SET MAX CORRUPT
啟動 restore 於 08-7月 -10
使用通道 ORA_DISK_1