TiDB可以同步MySQL的资料异动,那麽能不能反过来让其他DB同步随着TiDB异动呢。
答案是可以的,TiDB提供了CDC来满足此类需求,TiCDC可透过建立多个任务,来同步其他DB或者中间层,例如另一个TiDB,MySQL,Kafka等等。这边我主要用MySQL来实作。
首先一样透过tiup安装cdc,在这边可以使用tiup cluster scale-out指令来扩充,把cdc的设定写在scale_out.yaml里,或者修改原本deploy的yaml档,另建一组新的cluster。
一样都在yaml档内加上cdc相关设定,我加上了两台cdc server。
cdc_servers:
- host: 10.102.1.200
- host: 10.102.1.201
如果用scale-out则输入
tiup cluster scale-out tidb-test ./scale_out.yaml
如果是重建cluster,则一样使用deploy
tiup cluster deploy tidb-test v5.1.0 ./topo.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
安装好cdc之後,先查询一下capture的list,记得在ctl後面要加上:你安装的版本才能用。
tiup ctl:v5.2.1 cdc capture list --pd=http://10.102.1.92:2379
接下来就是新增一个资料同步的任务,指令中填入自己连结到mysql的帐密以及ip位置,另外记得後面加上?timezone=字样,不然会喷错。
tiup ctl:v5.2.1 cdc changefeed create --pd=http://10.102.1.92:2379 --sink-uri="mysql://tidb_rep:Orz@[email protected]:3306/?timezone=" --config=~/cdc.toml --start-ts=0
指令中的config使用的cdc.toml,里头可以让你设定要执行cdc的白名单,这边我简单的只针对test.*做读取
[filter]
rules = ['test.*']
可以透过指令来看现在的执行情况。透过message的回应来检视执行上是否正常。
比如我在tidb上insert了一笔资料,然後执行指令观察情况。
tiup ctl:v5.2.1 cdc changefeed list --pd=http://10.102.1.92:2379
发现原来我的帐号没有足够的权限作Insert。
新增完权限之後,再试一次。可以看到tidb的资料异动确实的呈现在MySQL。
本系列文之後也会置於个人网站 在帐号系统下,除了帐号本身与帐号群组外,通常还存在一个非常重要的部分...
前言 制作了加权指数的,这次制作三大法人-外资的讯号灯,本次会做多单还是空单、留仓数量是否增加、留仓...
前言 今天是铁人赛文章发文的最後一天 (在此我要谢谢我的爸爸、妈妈、老婆、小狗..),本篇会做个简单...
让我们用前两天Z检定的相同题目来试一次T检定 有一家3C公司说自家品牌的手机均可以使用超过5年,而标...
没有props还可以传资料吗 v-bind和v-on在没有props的情况下一样可以得到父层的资料。...