前言
DB2 DataPropagator (DProp) 是 IBM 早期提供的異構/同構數據復制方案,雖已由 Q Replication / CDC 取代,但其核心架構思想(捕獲→暫存→應用)仍具參考價值。本文聚焦 **DB2-to-DB2 同構復制**,系統梳理核心概念、三大組件、通訊機制與關鍵控制表。
核心概念速查
| 術語 | 全稱 | 角色 |
| CD 表 | Change Data Table | 暫存源表變更(含控制列:IBMSNAP_UOWID、IBMSNAP_INTENTSEQ、IBMSNAP_OPERATION + 業務列) |
| 控制表 | Control Tables | 存儲復制定義(註冊表、UOW 表、訂閱集等),位於控制服務器 |
| 捕獲程序 | Capture Program | 讀取源庫日誌,解析 DML,寫入 CD 表,運行於源服務器 |
| 應用程序 | Apply Program | 從 CD 表讀取變更,應用至目標庫,通常運行於目標服務器 |
三大組件架構圖
[源 DB2] --(日誌)--> [捕獲程序] --(寫入)--> [CD 表] <--(讀取)-- [應用程序] --(應用)--> [目標 DB2]
▲ │
│ │
[控制表] ◄──────────── 狀態同步/協調 ────►│
│
[管理界面: Control Center / DJRA]
管理界面選型
- DB2 Control Center:僅支援 DB2-to-DB2,圖形化、易上手。
- DataJoiner Replication Administration (DJRA):支援異構源(Oracle、SQL Server 等),本文不展開。
控制表樣本 DDL 參考:SQLLIB\samples\repl\dpcntl.udb,核心表含 ASN.IBMSNAP_REGISTER(註冊源表/列)、ASN.IBMSNAP_UOW(工作單元追蹤)等。
捕獲機制:日誌採集
捕獲程序透過讀取 **DB2 事務日誌**(歸檔/聯機)識別已提交事務,解析 DML(INSERT/UPDATE/DELETE),轉換為 CD 表記錄。關鍵特性:
- **非侵入式**:不觸發器、不修改應用,零業務影響。
- **事務一致性**:按 UOW (Unit of Work) 邊界寫入 CD 表,保證目標端應用順序正確。
- **延遲可控**:捕獲頻率、批次大小可配置,典型延遲秒級。
應用程序雙模式運作
| 階段 | 數據來源 | 操作類型 | 典型場景 |
| 初始化 | 源表/視圖直接讀取 | 全量 LOAD / INSERT | 新建訂閱、目標表重建 |
| 增量同步 | CD 表變更記錄 | 應用 DML(INSERT/UPDATE/DELETE) | 日常持續復制 |
多應用實例可共享控制表,針對不同目標服務器並行運行,實現「一源多目標」拓撲。
組件間通訊:控制表作為總線
捕獲與應用程序**不直接通訊**,完全通過控制表交換狀態:
- 捕獲程序更新
IBMSNAP_UOW、IBMSNAP_REGISTER 記錄「已捕獲至 LSN/時間點」。
- 應用程序輪詢控制表,讀取「待應用」變更,應用後回寫「已應用至 LSN」。
- 雙向心跳機制檢測對端存活,支援優雅停機/重啟續傳。
關鍵控制表結構速覽
ASN.IBMSNAP_REGISTER
SOURCE_OWNER, SOURCE_TABLE, SOURCE_VIEW_QUAL
TARGET_OWNER, TARGET_TABLE
COL_OPTIONS (含捕獲列位圖)
RECAPTURE, STATUS (A/I/E)
ASN.IBMSNAP_UOW
UOW_ID, COMMIT_TIME, LOG_POSITION
CAPTURE_STATUS, APPLY_STATUS
ASN.IBMSNAP_SUBS_SET
SET_NAME, WHOS_ON_FIRST (源/目標優先)
TARGET_SERVER, TARGET_SCHEMA
遷移與現代化建議
- 新專案:優先選擇 **Q Replication** (高效能、低延遲、雙向) 或 **IBM InfoSphere CDC** (異構、雲遷移)。
- 存量 DProp:評估業務關鍵度,制定分階段遷移計劃,利用「雙寫驗證」平滑切換。
- 雲原生:考慮 **Kafka + Debezium (DB2 Connector)** 實現事件流復制,解耦下游消費。
總結
DB2 數據復制的核心在於「日誌捕獲 → CD 表暫存 → 應用程序回放」三步走,控制表作為唯一協調中樞。理解這套機制不僅利於維護舊系統,更能幫助您評估新一代復制技術的架構優劣。
- 上一篇文章: DB2 9 for z/OS 全新樂觀鎖特性深度解析:ROW CHANGE TIMESTAMP 與 SKIP LOCKED DATA
- 下一篇文章: DB2 三大安全機制權威指南:認證、授權、特權與五級權限體系
Copyright ©
程式碼之家 All Rights Reserved