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

DB2 資料同步實戰:SQL 複寫環境規劃與部署完整指南

     編輯:DB2 教學

規劃情境

假設使用報表生成應用程式,需存取 SAMPLE 資料庫 DEPARTMENT 表資料。為避免直接存取來源表,決定將變更複寫至僅供報表應用讀取的目標表。為便於管理,目標表與來源表置於同一機器(或已編目至本地的網路資料庫)。

複寫方案實施步驟

前置準備

  1. 確認目標機器已安裝 DB2 並建立實例
  2. 確定來源與目標資料庫(可同機或網路資料庫,需編目至本地)
  3. 確認對來源與目標資料庫擁有存取權限(假設來源為 sample,目標為 copydb)
  4. 在本機建立 copydb 資料庫

方案規劃

1. 複寫來源

來源為 sample 資料庫中的 schema.DEPARTMENT 表。決定註冊所有欄位並預訂所有欄位。

2. 複寫目標

目標為 copydb 資料庫。目前無目標表,讓複寫中心依規範自動建立目標表(優先採用此法確保正確對應來源)。亦可使用現有目標表,本方案假設目標表不存在。

3. 複寫選項

CD 表、目標表與複寫控制表分別儲存於其預設表空間。雖 SAMPLE 與 COPYDB 同機,但表空間位於不同容器。

環境建置步驟

步驟 1:為 Capture 程式建立控制表

Capture 程式從複寫控制表讀取註冊資訊並儲存狀態。任何充當 Capture 控制伺服器的資料庫必須包含 Capture 控制表。

  1. 開啟複寫中心,展開「SQL 複寫」→「定義」資料夾
  2. 右鍵「Capture 控制伺服器」選擇「建立 Capture 控制表 → 快速」(或「定制」)
  3. 選擇 SAMPLE 資料庫作為 Capture 控制伺服器
  4. 選擇「主管用於複寫和捕獲對那些來源的更改的來源」
  5. 接受預設設定,指定 TSASNCA 與 TSASNUOW 表空間規格(緩衝池設為 IBMDEFAULTBP,Capture 模式 ASN)
  6. 執行生成的 SQL 腳本,確認成功訊息

步驟 2:為複寫啟用資料庫

Capture 程式讀取 DB2 日誌獲取註冊表變更記錄。日誌必須為歸檔日誌,UNIX/Windows 預設為循環日誌,需變更為歸檔日誌模式。

步驟 3:註冊複寫來源

  1. 展開「SQL 複寫」→「定義」→「Capture 控制伺服器」→ SAMPLE →「Capture 模式」→ ASN
  2. 右鍵「註冊的表」選擇「註冊表」
  3. 點擊「全部檢索」選擇 DEPARTMENT 表
  4. 在「CD 表」頁籤指定表空間規格:容器名 TSCDDEPARTMENT、大小 1 MB、緩衝池 IBMDEFAULTBP
  5. 執行 SQL 腳本確認成功

步驟 4:為 Apply 程式建立控制表

Apply 程式從複寫控制表讀取預訂集資訊並儲存狀態。任何充當 Apply 控制伺服器的資料庫必須包含 Apply 控制表。

  1. 右鍵「Apply 控制伺服器」選擇「建立 Apply 控制表 → 快速」
  2. 選擇 COPYDB 資料庫作為 Apply 控制伺服器
  3. 選擇「應用已捕獲的對目標表的更改」
  4. 指定 TSASNAA 表空間規格(緩衝池 IBMDEFAULTBP)
  5. 執行 SQL 腳本確認成功

步驟 5:建立預訂集與預訂集成員

預訂集定義來源(SAMPLE)與目標(COPYDB)資料庫關係;預訂集成員定義來源表(DEPARTMENT)與目標表(DEPTCOPY)關係。

  1. 右鍵「預訂集」選擇「建立」
  2. 輸入預訂集名稱 DEPTSUB、Apply 限定符 DEPTQUAL(區分大小寫)
  3. 指定 Capture 控制伺服器別名(SAMPLE)、目標伺服器別名(COPYDB)
  4. 勾選「啟用預訂集」
  5. 在「來源到目標對應」頁:添加 DEPARTMENT 表,將目標表名從 TGDEPARTMENT 改為 TGDEPTCOPY
  6. 在「成員屬性」→「目標表索引」:選擇 DEPTNO 為主鍵
  7. 在「列過濾」頁輸入 WHERE 子句:DEPTNO >= 'E00'(僅複寫部門號 ≥ E00 的行)
  8. 在「目標表表空間」指定 TSTGDEPTCOPY 表空間規格
  9. 在「排程」頁設定每 1 分鐘處理一次
  10. 在「陳述式」頁添加 SQL:DELETE FROM ASN.IBMSNAP_APPLYTRAIL WHERE LASTRUN < (CURRENT TIMESTAMP - 7 DAYS),SQLSTATE 設為 02000(忽略「找不到行」錯誤)
  11. 執行 SQL 腳本(可選擇儲存至檔案)確認成功

步驟 6:建立 Apply 程式密碼檔

Apply 程式需連接 Capture 控制伺服器、Apply 控制伺服器與目標伺服器,需建立加密密碼檔進行使用者認證。

# 進入 db2 sqllib/bin 目錄
Asnpwd init using "path:/sqllib/repl/asnpwd.aut"
Asnpwd add alias sample id userid password passWord using "path"

步驟 7:啟動 Capture 與 Apply 程式

Asncap asncap_server=sample capture_schema=ASN startmode=cold
Asnapply CONTROL_SERVER=copydb apply_qual=deptqual
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved