ticdc同步集群部署
一、部署
前置条件:
由于ticdc是集成在tidb工具包中的(tidb-community-toolkit-v7.5.2-linux-amd64)
所以在使用tiup离线部署ticdc前需要将工具包merge到tidb-server包中
cd tidb-community-server-${version}-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge …/tidb-community-toolkit-${version}-linux-amd64
通过TiUP有两种方式部署TiCDC
1:在TiDB集群部署时一同部署TiCDC。
在集群配置文件(topology_test.yaml)中添加
cdc_servers:
#cdc节点1地址- host: xx.xx.xx.xx
#gc过期时间,单位为秒gc-ttl: 86400
#cdc相关数据存储位置data_dir: "/cdc-data"
#cdc节点2地址- host:xx.xx.xx.xxgc-ttl: 86400data_dir: "/cdc-data"
通过添加以上配置,在TiDB集群拉起时就会自动部署好TiCDC
2:在已有的TiDB集群中新增TiCDC组件
准备扩容配置文件,与其他组件扩容配置文件类似。(在源集群中控机上新加配置scale-out.yml,IP为cdc节点IP,注:确保中控机和这三个cdc节点能互信登陆)
cdc_servers:- host: xx.6.1.1gc-ttl: 86400data_dir: /tidb-data/cdc-8300- host: xx.6.1.2gc-ttl: 86400data_dir: /tidb-data/cdc-8300- host: xx.6.1.4gc-ttl: 86400data_dir: /tidb-data/cdc-8300
执行扩容命令(在源tidb集群执行)
tiup cluster scale-out tidb-test scale-out.yml
二、应用
TiCDC支持将上游的TiDB数据同步至TiDB、MySQL、Kafka等,本文已同步至tidb容灾节点为例
tiup cdc cli changefeed create --pd=http://xxx.xxx.xx.xx:2379 --sink-uri=“tidb://root:xxx@xxx.xxx.xxx.xxx:4000/” --changefeed-id=“replication-test-1” --sort-engine=“unified”
如遇到报错
需修改mysql时区
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p
#查看有哪些同步任务
tiup cdc cli changefeed list --pd=http://xxx.xx.xx.xx:2379
#查看同步任务状态
tiup cdc cli changefeed query --pd=http://xxx.xx.xx.xx:2379 --changefeed-id=replication-test-1
#停止同步
tiup cdc cli changefeed pause --pd=http://xxx.xx.xx.xx:2379 --changefeed-id=replication-test-1
#resume-恢复
tiup cdc cli changefeed resume–pd=http://xxx.xx.xx.xx:2379 --changefeed-id=replication-test-1