Canal mysql to mysql 增加 online 库同步配置指南
Canal 增加新库 online 的配置指南
1. 停止 Canal Adapter 服务
./bin/stop.sh
2. 数据库备份与导入
备份源数据库
mysqldump -h 127.0.0.1 -P 3307 --single-transaction -uroot -p -B online > online.sql
导入到目标数据库
mysql -h 127.0.0.1 -P 3308 -uroot -p < online.sql
3. 修改 Canal Instance 配置
- 登录 Canal Admin 控制台
- 找到对应的 Instance 配置
- 修改
canal.instance.filter.regex
参数
修改前配置示例
canal.instance.filter.regex=afzx\\..*
修改后配置示例
canal.instance.filter.regex=afzx\\..*,online\\..*
- 点击"修改"按钮保存配置
4. 配置 Canal Adapter
程序目录
cd /home/canal_adapter/
4.1 修改 application.yml
/home/canal_adapter/conf/application.yml
在 srcDataSources 部分增加 online 数据源
srcDataSources:afzxDS:url: jdbc:mysql://127.0.0.1:3307/afzx?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=trueusername: canalpassword: canal# 新增 online 数据源配置onlineDS:url: jdbc:mysql://127.0.0.1:3307/online?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=trueusername: canalpassword: canal
在 canalAdapters 部分增加 online 目标库配置
canalAdapters:- instance: qiji66groups:- groupId: g1outerAdapters:- name: logger- name: rdbkey: afzx_keyproperties:jdbc.driverClassName: com.mysql.jdbc.Driverjdbc.url: jdbc:mysql://127.0.0.1:3308/afzx?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=falsejdbc.username: canaljdbc.password: canal# 新增 online 目标库配置- name: rdbkey: online_keyproperties:jdbc.driverClassName: com.mysql.jdbc.Driverjdbc.url: jdbc:mysql://127.0.0.1:3308/online?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=falsejdbc.username: canaljdbc.password: canal
4.2 创建 online 映射配置文件
在 conf/rdb/
目录下创建 online_mapping.yml
文件:
/home/canal_adapter/conf/rdb/online_mapping.yml
dataSourceKey: onlineDS # 对应源数据源
destination: qiji66 # 与instance名称一致
groupId: g1 # 与groupId一致
outerAdapterKey: online_key # 对应目标数据源key
concurrent: true
dbMapping:mirrorDb: true # 启用全库镜像模式database: online # 源数据库名
5. 启动 Canal Adapter 服务
cd /home/canal_adapter
./bin/startup.sh
验证步骤
- 检查 Canal Adapter 日志是否有错误
- 在源库 online 中执行数据变更操作
- 检查目标库 online 是否同步了相应变更
注意事项
- 确保源库和目标库的表结构一致
- 如果同步过程中出现问题,可查看 logs/adapter/adapter.log 获取详细错误信息
- 对于大表,初次同步可能需要较长时间