1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
4.1.4 | - |
CDC(Change Data Capture),即資料變更抓取,透過為源端資料源開啟CDC,FineDataLink 資料管道可實現資料源的實時資料同步。
FineDataLink 資料管道支援 DB2 CDC 模式,本章節主要介紹如何為 DB2 資料庫開啟CDC功能。
執行同步任務前,需要參考本文在資料源中進行一些配置,為後續的資料同步做好準備。
如果有鑑權相關的報錯,可以切換到 root 使用者下先賦權,再進入db2的角色裏操作。
2. 開啟歸檔日誌
切換到 db2inst1 使用者,並連結到資料庫:
su - db2inst1
db2 connect to <db_name>
查看資料庫當前主日誌模式,如果傳回為 OFF 則未開啟歸檔模式:
更改資料庫日誌模式:
db2 update db cfg for <db_name> using LOGARCHMETH1 <backup_path>
注1:<db_name>為資料庫名稱,<backup_path>為設定的日誌歸檔路徑。
注2:如果想到使用者指定目錄,就需要先賦權。
斷開其他應用的資料庫連結
db2 force applications all
首次把 db2 改成歸檔日誌後,資料庫處於 BACKUP PENDING 狀態,需要進行一次全備份
db2 backup db <db_name>
連結到資料庫,檢查該資料庫是否是歸檔日誌模式:
db2 connect to <db_name>
db2 get db cfg for <db_name> | grep -i LOGARCHMETH1
3. 初始化 Db2 ASN Capture 程式
資料庫開啟歸檔模式,並同時開啟 Db2 CDC 後,使用者所訂閱表的增/刪/ 改操作會被 Db2 ASN Capture 擷取到並寫入到 CDC 表中,之後 CloudCanal 將會掃描相關的表進行增量同步。
透過以下腳本,可以一鍵初始化 Db2 ASN Capture 程式。
將db2-cdc-script 解壓到 db2 使用者的使用者資料夾,即解壓到資料庫使用者的 ~ 資料夾中。
先將檔案放置到 root 使用者的目錄下,例如root使用者的/ 目錄下
使用命令複製到 db2 使用者的使用者資料夾:
docker cp db2-cdc-script/ db2-11:/database/config/db2inst1/
進入到 /database/config/db2inst1/ 目錄下:
對該資料夾賦權:
chmod -R +777 /db2-cdc-script
切換到 db2 的使用者下:
su - db2inst1
進入到 db2-cdc-script 資料夾,再去執行腳本:
cd /db2-cdc-script
bash ~/db2-cdc-script/cdc_setup.sh <db_name>
如下圖所示:
運作成功,如下圖所示:
4. 資料庫使用者權限
在使用 DB2 資料庫與 FineDataLink 建立連結時,使用的資料庫使用者需要擁有對應儲存程式的執行權限及源表、CDC表、配置表的SELECT權限。
5. 後續步驟
使用 DB2 資料庫與 FineDataLink 建立連結(配置IBM DB2資料源)並配置管道任务。