课程名称: 3.5 How to use TiCDC (增量同步工具 TiCDC)
学习时长:1h
课程收获:
了解TiCDC的使用与维护
课程内容:
TiCDC简介
1、什么是TiCDC
数据变更捕获,将上游数据库写入的数据同步到下游的系统,TiCDC就是TIDB的实时数据同步工具,可以将写入TiDB的增量数据同步到其它系统,如kafka等
2、下图为TiCDC架构图,途中箭头方向表示数据流动方向
TiCDC是由多节点构成的集群,集群中每个节点都会从TiKV中拉取数据,具有故障转移和扩展能力
3、特性
高可用、高性能、丰富的生态对接(MySQL/kafka/Pulsar)、环形同步
部署TiCDC
1、软硬件需求
centos 7.3、16c、32个、200gssd、万兆网
2、支持TiUP部署
第一种方案部署到已有的TiDB集群中,通过TiUP扩容的方式操作
第二种方案是TIUP在全新集群上部署TICDC
创建TiCDC的同步任务
1、cdc cli,用于管理TiCDC集群,cdc cli changefeed命令用来管理同步任务
创建同步任务到mysql: cdc cli changefeed create --pd=http://xxxxx:2379 --sink-uri="mysql://user:pwd@xxx:3306/"
查看现有同步任务状态: cdc cli changefeed list --pd=http://xxxx:2379
2、同步要求
数据表必须有主键或者唯一索引
不支持的场景:raw kv的TiKV集群、不支持创建ddl的sequence操作、TiKV的静默region功能
环形同步
1、环形同步功能支持在多个独立的TiDB间执行同步操作
2、创建环形同步的准备工作
在要创建任务的集群上执行cdc cli changefeed create-marktables --cyclic-upstream-dsn="本机TiDB节点:本机TiDBport" --pd="localPD节点:localPDport"
3、创建环形同步任务
--cyclic-replica-id:为上游来源写入,指定上游id,需要确保每个集群id的唯一性
--cyclic-filter-replica-ids:需要过滤的写入来源id,通常为下游来源的id
--cyclic-sync-ddl:用于指定是否同步ddl到下游
TiCDC集群管理
1、暂停恢复删除任务
cdc cli changefeed pause --pd=xxxxx --changefeed-id xxxxxxxxxx
cdc cli changefeed resume --pd=xxxxx --changefeed-id xxxxxxxxxx
cdc cli changefeed remove --pd=xxxxx --changefeed-id xxxxxxxxxx
2、查看同步任务的整体情况和状态
cdc cli changefeed list --pd=http://xxxx:2379
cdc cli changefeed query --pd=xxxxx --changefeed-id xxxxxxxxxx
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: