canal mysqltomysql增加同步的库操作
例如增加库 online
1、停止canal.adapter 服务。
./bin/stop.sh
2、备份数据库online,导入目标mysql
备份
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、修改instance 配置,增加过滤库,多个用,号隔开
假设原来是
canal.instance.filter.regex=afzx\\..*
增加配置online\…*
canal.instance.filter.regex=afzx\\..*,online\\..*
点击修改 保存
4、 配置canal.adapter 增加online 库。
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: qiji66 # canal instance name or mq topic namegroups:- groupId: g1outerAdapters:- name: logger- name: rdbkey: afzx_key # 第一个目标数据库properties: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_key # 第一个目标数据库properties: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
增加 rdb/online_mapping.yml 配置文件
dataSourceKey: onlineDS # 对应db1的数据源
destination: qiji66 # 与instance名称一致
groupId: g1 # 与groupId一致
outerAdapterKey: online_key # 对应目标数据源key
concurrent: true
dbMapping:mirrorDb: truedatabase: online # 源数据库名
启动 adapter
./bin/startup.sh