什麼是資料複寫
資料複寫是指將來源資料庫指定資料複寫至目標資料庫,以保持雙方指定資料同步一致。
基礎概念
- CD 表 (Change Data Tables): 暫存異動資料的表,含需擷取異動的欄位與控制欄位。
- DB2 日誌類型: 循環日誌、歸檔日誌。
DB2 DataPropagator 三大組件
- 管理介面: 建立存放複寫標準的控制表(如 ASN.IBMSNAP_REGISTER、ASN.IBMSNAP_UOW)。兩種介面:
DB2 Control Center (僅限 DB2 間) 與 DataJoiner Replication Administration (含非 IBM 資料庫)。
- 異動擷取機制: 建立環境後擷取來源異動並暫存至 CD 表。兩種機制:
① Capture 程式:來源為 DB2 表時,讀取資料庫日誌擷取異動,運行於來源伺服器。
② Capture Trigger:擷取非 IBM 資料庫來源 (本文不詳細討論)。
- 應用程式: 從 CD 表讀取異動套用至目標資料庫,或直接從來源複製資料。
① 初始化階段直接從來源表/視圖讀取資料初始化目標表;後續從 CD 表套用異動。
② 通常運行於目標伺服器,也可運行於任何能連線來源、控制、目標的伺服器。多實例可共享控制表。
③ 每個應用程式關聯一個含控制表的控制伺服器。
組件間通訊
組件間相互獨立,依賴控制表資訊通訊。Capture 與 Apply 透過更新控制表指示進度與協調異動。
- DB2 間複寫:Capture 讀取來源日誌擷取異動置入 CD 表。
- Apply 每次複製資料至目標,目標內容反映來源異動。Apply 套用自上次更新以來累積的交易(僅套用未套用的異動)。
基於日誌的通訊細節
Capture 使用部分控制表記錄來源異動,Apply 使用這些值偵測需複製內容。
重要: 若 Apply 未通知 Capture,Capture 不會擷取任何異動。同樣,除非定義複寫來源並關聯訂閱集,否則 Apply 不會通知 Capture 開始擷取。