ticdc异构数据库同步,表名相同数据库不同怎么配置

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.7.25-TiDB-v6.5.9
【复现路径】
【遇到的问题:问题现象及影响】
系统已经有一个ticdc,同步到mysql1中,分了8个changefeed同步不同的表数据。现在下游要加一个mysql2,同步其中几个表做备份,表名相同但是数据库不同。应该怎么做?

目前的想法是:
1、存量数据:找个tso,用dumpling存量数据导出存量数据。写入mysql中。也是异构数据库的常用操作啦
2、增量数据:tso之后的增量部分用ticdc去做同步,但是源端和目标端表相同,数据库名不同,这种情况下应该怎么配置changefeed.toml文件
3、新的配置文件执行,猜测也是这个命令,需要大佬给确认下
tiup cdc cli changefeed create --server=http://sourcehost:sourceport --sink-uri=“mysql://root:password@targethost:targetport/?max-txn-row=256&worker-count=32” --changefeed-id=“t_member” --config=changefeed.toml --start-ts=449883737463717927

【资源配置】
【附件:截图/日志/监控】

不支持上下游不同库名

啊!!!要是同库名的话可以这么用这个命令直接刷嘛

tiup cdc cli changefeed create --server=http://sourcehost:sourceport --sink-uri=“mysql://root:password@targethost:targetport/?max-txn-row=256&worker-count=32” --changefeed-id=“t_member” --config=changefeed.toml --start-ts=449883737463717927

因为之前已经有一个下游mysql的,这个不太了解是否可以

同表库名应该没啥问题

测试环境上验证了一把,第三条是可行的。同表不同库名不能同步并没有找到资料这么说,但也同样没有找到资料说应该怎么去做配置

直接刷就可以,支持多个mysql实例,修改下sinkurl就可以

不明觉厉,但是不知道那一部分是sinkurl

1、存量数据:找个tso,用dumpling存量数据导出存量数据。写入mysql中。也是异构数据库的常用操作啦 可以使用dumpling导出表数据,然后恢复到mysql目标库(手动恢复,好像Lightning只能恢复到tidb,pos再metadata文件)
2、增量数据:tso之后的增量部分用ticdc去做同步,但是源端和目标端表相同,数据库名不同,这种情况下应该怎么配置changefeed.toml文件 数据库名称不同貌似不支持,如果是库名相同,执行3
3、新的配置文件执行,猜测也是这个命令,需要大佬给确认下

tiup cdc cli changefeed create --server=http://sourcehost:sourceport --sink-uri=“mysql://root:password@targethost:targetport/?max-txn-row=256&worker-count=32” --changefeed-id=“t_member” --config=changefeed.toml --start-ts=449883737463717927

tiup cdc cli changefeed create
–pd=http://127.0.0.1:2379 \ ## pd的ip和端口,可以用tiup cluster cluster_name display 显示
–sink-uri=“mysql://cdc:aWgw66ccxz@10.0.74.16:3306/?worker-count=2&max-txn-row=5000&time-zone=” \ ## https://docs.pingcap.com/zh/tidb/v7.5/ticdc-sink-to-mysql 看这里
–start-ts=453467490271625222 \ ## metadata的pos
–changefeed-id=“replication-task-1” \ ## 随便起名
–config=/data/tools/tidb_yaml/changefeed.toml ## 可以使用配置文件过滤单表等

如只同步d1库的t5表
cat changefeed.toml

[filter]
rules = [‘d1.t5’]

2 个赞

–sink-uri=“mysql://cdc:aWgw66ccxz@10.0.74.16:3306/?worker-count=2&max-txn-row=5000&time-zone=” \ ##
就是说修改为实例2的连接,参数是sink-uri

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。