本文記錄在 AIX 4.3.3 平台上,Oracle 8.0.5 版本環境下,如何利用 RMAN 搭配 Tivoli Data Protection for Oracle (TDP) 將源節點 h50b (RS/6000 H50) 的備份資料恢復至目標節點 43p-db 的完整操作流程。
在目標節點 43p-db 上,編輯 TDP 配置檔 /usr/tivoli/tsm/client/oracle/bin/tdpo.opt,將 TDPO_NODE 參數改為源節點 h50b 的 TSM 節點名稱 (此處為 tdp_h50b)。
# vi /usr/tivoli/tsm/client/oracle/bin/tdpo.opt
TDPO_NODE tdp_h50b
隨後初始化/更新 TDP 密碼檔:
# cd /usr/tivoli/tsm/client/oracle/bin/
# tdpoconf password
************************************************************
* Tivoli Data Protection for Oracle Utility *
* Password file initialization/update program *
* ROOT privilege needed to update value *
************************************************************
Please enter current password:
Please enter new password:
Please reenter new password for verification:
ANU0260I Password successfully changed.
將源節點 h50b 的 configora8_sb.ora、initora8_sb.ora 以及 Oracle 密碼檔複製至目標節點 43p-db 對應的目錄下。所有相關目錄需預先建立。
在 43p-db 上以 STARTUP NOMOUNT 方式啟動 Oracle 實例 (SID: ora8_sb),準備接收控制檔恢復。
在源節點 h50b 執行 RMAN 指令碼,連接目標節點的目標資料庫與恢復目錄,將控制檔從磁帶恢復至磁碟,並複製為多路控制檔,最後掛載資料庫。
export ORACLE_SID=ora8_sb
rman target system/passwd1@43p-db rcvcat rman/rman@forjy
RMAN> run {
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin/tdpo.opt)';
restore controlfile to '/sbfs/ctl01sb.ctl';
release channel t1;
allocate channel d1 type disk;
replicate controlfile from '/sbfs/ctl01sb.ctl';
sql 'alter database mount';
release channel d1;
}
執行過程中 RMAN 會顯示通道分配、控制檔恢復、複製及資料庫掛載的詳細日誌。
在源節點 h50b 查詢近期歸檔日誌中各執行緒最大 SCN 的最小值,作為時間點恢復的終止 SCN。
SQL> SELECT min(scn) FROM (SELECT max(next_change#) scn FROM v$archived_log GROUP BY thread#);
MIN(SCN)
----------
99561745
使用上一步取得的 SCN (99561745) 作為 SET UNTIL SCN 參數,恢復並恢復整個資料庫,最後以 RESETLOGS 方式開啟。
rman target system/passwd1@43p-db rcvcat rman/rman@forjy
RMAN> run {
set until scn= 99561745;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin/tdpo.opt)';
restore database;
recover database;
release channel t1;
sql "alter database open resetlogs";
}
恢復過程中 RMAN 會自動從磁帶恢復所有資料檔,並在媒體恢復階段自動尋找並恢復所需的歸檔日誌 (如範例中的 sequence 12),最終完成 OPEN RESETLOGS。
此流程展示了跨節點、異機恢復的關鍵點:目標節點必須偽裝成源節點的 TSM 身份 (修改 tdpo.opt 節點名與密碼),並擁有相同的參數檔與密碼檔;恢復控制檔後需掛載資料庫;根據歸檔日誌 SCN 執行時間點恢復 (PITR) 並以 RESETLOGS 開啟新化身。操作全程在 AIX 平台 Oracle 8.0.5 / TDP 環境下驗證通過。