ticdc 同步有规律的数据库

张映 发表于 2021-10-14

分类目录: tidb

标签:, ,

想把tidb中以tank_开头的所有数据库都同步到mysql,并且tank_开头的库是不断增加的。所以每次都改配置文件是不合适的。

固定库名同步的请参考:ticdc 同步tidb到mysql

1,mysql创建权限和测试数据库

CREATE USER 'tanktest'@'%' identified by '123456';
create database tank_1;
create database tank_2;
create database tanktank_1;
GRANT ALL PRIVILEGES ON `tank_%`.* TO 'tanktest'@'%';
GRANT ALL PRIVILEGES ON tanktank_1.* TO 'tanktest'@'%';
flush privileges;

数据库tank_1,tank_2,tanktank_1,tidb和mysql都要有。

2,创建ticdc配置文件

$ cat tidb-live-test.toml
case-sensitive = true
enable-old-value = false

[filter]

rules = ['tank_*.*'] 

[mounter]
worker-num = 4

[sink]
protocol = "default"

[cyclic-replication]
enable = false
replica-id = 1
filter-replica-ids = [2,3]
sync-ddl = true

这个tank_*配置不太确定是不是匹配tank_开头,经验证后是以tank_开头

3,启动同步

tiup ctl cdc changefeed create --pd=http://10.0.10.19:2379 --sink-uri="mysql://tanktest:123456@10.0.55.16:3306/?max-txn-row=500&time-zone="  --config tidb-live-test.toml --changefeed-id="tidb-live-test"

4,测试同步

CREATE TABLE `test1` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(30) DEFAULT NULL COMMENT '姓名',
 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=30001 COMMENT='测试';

insert into test1 (name)values('tank1');

在步骤1创建了三个数据库,tank_1,tank_2,tanktank_1,分别在主库创建表和数据,看能不能同步表和数据。然后在创建个tank_3数据库看看能不能同步到mysql。

 

 



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/tidb/2540.html