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数据源)并配置管道任务。