DTS订阅binlog
本文为您介绍如何使用数据传输服务DTS(Data Transmission Service)订阅AnalyticDB for MySQL Binlog,并实现AnalyticDB for MySQL集群之间的数据同步与增量迁移。
前提条件
-
AnalyticDB for MySQL产品系列为企业版、基础版、湖仓版和数仓版弹性模式。
-
AnalyticDB for MySQL集群的内核版本:
-
xuanwu_v1表引擎:需为3.2.1.0及以上版本。
-
xuanwu_v2表引擎:需为3.2.6.0及以上版本。
-
如需订阅物化视图增量刷新的Binlog,内核版本需为3.2.6.9、3.2.7.1及以上。
说明请在云原生数据仓库AnalyticDB MySQL控制台集群信息页面,配置信息区域,查看和升级内核版本。
-
-
AnalyticDB for MySQL集群已开启CDC功能。
说明CDC(Change Data Capture)功能用于捕获数据变更,支持增量数据同步和迁移。如需开启CDC功能或不清楚CDC功能是否已开启,请联系技术支持。
操作步骤
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,然后单击目标集群ID。
-
开启Binlog功能,本文以表名为source_table为例。
说明AnalyticDB for MySQL仅支持按表开启Binlog功能。
建表时,开启Binlog
CREATE TABLE source_table ( `id` INT, `num` BIGINT, PRIMARY KEY (`id`) )DISTRIBUTED BY HASH (id) BINLOG=true;建表后,开启Binlog
ALTER TABLE source_table BINLOG=true; -
(可选)修改Binlog保留时长。
您可以通过修改
binlog_ttl参数来调整Binlog的保留时长,参数默认值为6h。以下示例表示将表source_table的Binlog保留时长设置为1天。ALTER TABLE source_table binlog_ttl='1d';binlog_ttl参数取值支持以下格式:-
毫秒:纯数字。示例:
60代表60毫秒。 -
秒:数字+s。示例:
30s代表30秒。 -
小时:数字+h。示例:
2h代表2小时。 -
天:数字+d。示例:
1d代表1天。
说明-
内核版本为3.2.1且为3.2.1.9及以上、3.2.2且为3.2.2.14及以上、3.2.3且为3.2.3.8及以上、3.2.4且为3.2.4.4及以上、3.2.5且为3.2.5.1及以上的集群,Binlog保留时长上限为365天。内核版本低于上述的集群,Binlog保留时长上限为21天。
-
建议您设置的Binlog保留时间不小于
binlog_ttl参数的默认值。若设置的保留时间过短,可能会导致文件被清理,影响数据同步。 -
如果您需要查看当前Binlog保留时长,执行语句
SHOW CREATE TABLE source_table;。
-
-
(可选)查看Binlog信息。
说明使用以下语句查看Binlog日志信息时,若仅开启Binlog功能,日志信息显示为0。只有成功订阅Binlog后,才会显示日志信息。
-
若您需要获取Binlog最新写入的文件名和位置信息,请执行以下SQL语句:
SHOW MASTER STATUS FOR source_table; -
若您需要了解所有未清理的历史Binlog文件及其大小,请执行以下SQL语句:
SHOW BINARY LOGS FOR source_table;
-
开启Binlog的性能影响
开启Binlog功能后,AnalyticDB for MySQL会额外记录数据变更日志,对集群产生以下影响:
-
CPU 开销:开启 Binlog 的表在执行 INSERT、UPDATE、DELETE 时会有额外的 CPU 开销。常规业务场景下 CPU 增加通常不超过 10%,极端高并发写入场景可能达到约 40%。建议在业务低峰期开启或先在测试库评估。
-
存储开销:Binlog 文件按数据变更量增长并占用磁盘空间。空间占用与
binlog_ttl保留时长成正比,请根据实际同步需求合理设置保留时长,避免过期数据占用空间。 -
查询性能:开启 Binlog 不影响查询性能。
常见问题
是否支持监听Binlog日志?
支持。AnalyticDB for MySQL支持表级Binlog监听,即您可以对指定表开启Binlog功能后,通过DTS或程序等工具订阅该表的数据变更事件。目前不支持实例级Binlog,无法通过单个订阅获取整个实例中所有表的变更日志。如需监听多张表的Binlog,请分别对每张表开启Binlog功能后进行订阅。