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{
} */;