1.22支持,实验功能,用于数据追平
使用前请使用下面语句检查涉及的数据源连接mysql开启binlog,而且是row格式,需要开启GTID
同步的表要求有主键
SHOW VARIABLES LIKE 'log_bin'
清理BINLOG同步任务
/*+ mycat:BINLOG_CLEAR{} */;
记录所有数据源的binlog文件以及位置并显示出来
/*+ mycat:BINLOG_SNAPSHOT{"name":"testBinlogSnapshot"} */;
testBinlogSnapshot:用于区分快照,该信息会被记录到mycat.ds_binlog表
CREATE TABLE `ds_binlog` (`Id` text,`Name` text,`Datasource` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,`File` text,`Position` bigint(20) DEFAULT NULL,`Binlog_Ignore_DB` text,`Binlog_Do_DB` text,`Executed_Gtid_Set` text,`CreateDatetime` datetime DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
binlog同步
/*+ mycat:BINLOG_SYNC{"connectTimeout":0,//binlog连接超时时间"inputTableNames":["db1.travelrecord_input"],"name":"test0","outputTableNames":["db1.travelrecord_output"]} */;
把逻辑表db1.travelrecord_input的binlog变成SQL语句,并应用到到逻辑表db1.travelrecord_output
使用snapshotId查询mycat.ds_binlog得到快照信息,然后使用它的binlog文件和位置开始同步
/*+ mycat:BINLOG_SYNC{"connectTimeout":0,"inputTableNames":["db1.travelrecord_input"],"name":"testBinlogGlobalToNormal","outputTableNames":["db1.travelrecord_output"],"snapshotId":"94516452-6151-433c-8890-071e43f618e0"} */;
停止binlog同步
/*+ mycat:BINLOG_STOP{"id":"ae1b8375-3e60-4152-be98-3792a59c5609"} */;
列出binlog同步任务
/*+ mycat:BINLOG_LIST{} */;
