CDC部署在源端还是目标端?还是都可以?版本是要和目标端一样还是和源端一致比较好

CDC部署在源端还是目标端?还是都可以?版本是要和目标端一样还是和源端一致比较好
现在有一个4.0.2版本的源端,准备迁移到一个新版本5.0.0版本。CDC同步是部署在目标端5.0版本这里还是部署在源端4.0.2版本那里。
我如果在5.0目标端部署5.0.0版本,让他去找源端4.0.2版本的kv日志信息同步到5.0 会不会有问题?

先可以考虑升级下版本,在考虑使用 CDC…

CDC 是从 tikv 捕捉变更的数据信息,靠近 tidb 集群会更好…

源端的 要解析源端的kv change log 所以最好版本还要跟源端一致,到目标段就是执行SQL。

2 个赞

最好两个版本一致,可以避免一些问题~

1 个赞

我看了官网文档


5.0.0版本是可以兼容4.0版本集群的。除了5.0.0-RC版本
我也想版本一致呀。现在要迁移,老版本是4.0.2 太老了。也不敢升级太高。先趁着迁移升级到5.0.在慢慢升级到6

在源端只能扩容部署4.0.2版本,在目标端部署只能是5.0版本呢。

你这种情况就先用4.0的吧,如果是相同版本的,当有网络延迟时,ticdc 建议在部署在下游。

用4.0那就是只能在源端去部署了是吧。源端是4.0版本。目标端是5.0.下游是没办法安装4.0版本吧。

是的,两边版本不一致就去源端部署吧

源端解析,目标端就是执行。还是偏解析端会好些

CDC要部署在集群源端的,目标端只要网络联通即可

CDC部署在源端还是目标端 都可以,官方文档说如果主库负载高网络又延时大,放客户端

建议用用4.0版本

似乎目前只能将cdc和源端集群绑定一起部署,因为要连pd ,还要往Pd写任务信息。还没试过在目标段部署cdc抽取源端的方式。 源端部署的cdc 倒是可以放在目标段的网络内。

源端如果有3台PD,我写ctl cdc创建任务的时候。写哪个地址呢?

不用写pd地址,指定ticdc地址和下游地址就可以,ticdc本身就在集群内,会自动去找pd
参考这里
https://docs.pingcap.com/zh/tidb/stable/ticdc-sink-to-mysql

cdc cli changefeed create --pd=http://10.0.10.25:2379 --sink-uri=“mysql://root:123456@127.0.0.1:3306/” --changefeed-id=“simple-replication-task” --sort-engine=“unified”
5.0的创建任务模版,–pd 不就是连接pd的源端的地址吗,uri就是目标地址
你这个是7.1版本的6.5版本之后的新命令格式。

抱歉,我这边用的6.5的版本不需要,4.0确实需要,指定leader地址就可以

1 个赞

成功了么?用的5.0在目标端么?

在目标端创建不了任务。只能在源端。现在源端创建也不同步~~~哎