黄东旭解析 TiDB 的核心优势
406
2024-03-16
TiCDC 是一款 TiDB 增量数据同步工具,通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。
TiCDC 作为 TiDB 的增量数据同步工具,通过 PD 内部的 etcd 实现高可用,通过多个 TiCDC 进程获取 TiKV 节点上的数据改变,在内部进行排序、合并等处理之后,通过多个同步任务 (Changefeed),同时向多个下游系统进行数据同步。
tiup cluster display tidb-test
我们可以看到cdc组件已经安装,如果没有安装,我们可以使用扩容方式,安装一台cdc。
大致安装过程:
a)首先编辑文件
vi cdc-scale-out.yaml
b)然后开始扩容:
tiup cluster scale-out tidb-test cdc-scale-out.yaml -uroot -p
c)使用ctl工具查看cdc安装情况,如果没有ctl会自动进行安装:
tiup ctl:v6.5.2 cdc capture list --pd=http://192.168.31.202:2379
is-owner为true表示TiCDC节点为owner节点。
创建同步任务命令:
tiup cdc cli changefeed create --server=http://192.168.31.100:8600 --sink-uri="mysql://test:test@192.168.31.100:3306/" --changefeed-id="mysql-task-1" --sort-engine="unified"
执行报错,这是由于MySQL没有加载时区,可以通过 mysql_tzinfo_to_sql命令加载时区,加载后就可以正常创建任务或同步任务。
再次执行创建同步任务就会创建成功
命令查看同步任务:
tiup cdc cli changefeed list --server=http://192.168.31.100:8600
执行报错,这是由于TiCDC只能增量同步,而目标端MySQL还未创建相应库表引起,此时需要在目标端MySQL上面创建库表
再次使用命令查看同步任务:
"state": "normal" : 表示任务状态正常
"tso": 442219081055338503 : 表示同步任务的时间戳信息
1)我这里后台运行一个脚本,不断往TiDB数据库tdb.ti_1插入数据,TiDB查看数据,可以看到表数据总记录不断在增长
2)MySQL查看数据表ti_1,总记录也在不断增长
说明增量数据通过源端TiDB同步到目标端MySQL
简单总结下,主要操作步骤如下:
a)已安装TiCDC组件
b)创建同步任务,由于TiCDC只能增量同步,所以目标端需提前创建同步数据表
c)测试验证数据
实际应用场景一般是源端TiDB已投入使用有一段时间,后来由于业务需要同步数据,此时可以用TiDB工具Dumpling从TiDB导出逻辑全量数据(比如sql格式),然后导入到MySQL,最后启用TiCDC增量实时同步功能。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。