首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

使用 RMAN 與 Tivoli TDP 將 Oracle 資料庫跨節點恢復至 AIX 環境

     編輯:Oracle 資料庫基礎

環境說明

本文記錄在 AIX 4.3.3 平台上,Oracle 8.0.5 版本環境下,如何利用 RMAN 搭配 Tivoli Data Protection for Oracle (TDP) 將源節點 h50b (RS/6000 H50) 的備份資料恢復至目標節點 43p-db 的完整操作流程。

前置準備:目標節點配置

1. 修改 TDP 節點名稱

在目標節點 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.

2. 複製源節點配置與密碼檔

將源節點 h50b 的 configora8_sb.ora、initora8_sb.ora 以及 Oracle 密碼檔複製至目標節點 43p-db 對應的目錄下。所有相關目錄需預先建立。

3. 啟動目標資料庫至 NOMOUNT 狀態

在 43p-db 上以 STARTUP NOMOUNT 方式啟動 Oracle 實例 (SID: ora8_sb),準備接收控制檔恢復。

核心恢復步驟

4. 恢復控制檔並掛載資料庫

在源節點 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 會顯示通道分配、控制檔恢復、複製及資料庫掛載的詳細日誌。

5. 確定不完全恢復的 SCN 點

在源節點 h50b 查詢近期歸檔日誌中各執行緒最大 SCN 的最小值,作為時間點恢復的終止 SCN。

SQL> SELECT min(scn) FROM (SELECT max(next_change#) scn FROM v$archived_log GROUP BY thread#);
MIN(SCN)
----------
99561745

6. 恢復資料檔並執行不完全恢復

使用上一步取得的 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 環境下驗證通過。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved