DTS订阅binlog

更新时间:

本文为您介绍如何使用数据传输服务DTS(Data Transmission Service)订阅AnalyticDB for MySQL Binlog,并实现AnalyticDB for MySQL集群之间的数据同步与增量迁移。

前提条件

  • AnalyticDB for MySQL产品系列为企业版基础版湖仓版数仓版弹性模式

  • AnalyticDB for MySQL集群的内核版本需为3.2.1.0及以上版本。

    说明

    云原生数据仓库AnalyticDB MySQL控制台集群信息页面的配置信息区域,查看和升级内核版本

  • AnalyticDB for MySQL集群已开启CDC功能。

    说明

    CDC(Change Data Capture)功能用于捕获数据变更,支持增量数据同步和迁移。如需开启CDC功能或不清楚CDC功能是否已开启,请联系技术支持。

使用限制

XUANWU_V2表不支持开启Binlog,因此不能通过订阅Binlog实现AnalyticDB for MySQL集群之间XUANWU_V2表的数据同步与增量迁移。

操作步骤

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表。在集群列表上方,选择产品系列,然后单击目标集群ID。

  2. 开启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;
  3. (可选)修改Binlog保留时长。

    您可以通过修改binlog_ttl参数来调整Binlog的保留时长,参数默认值为6h。以下示例表示将表source_tableBinlog保留时长设置为1天。

    ALTER TABLE source_table binlog_ttl='1d';

    binlog_ttl参数取值支持以下格式:

    • 毫秒:纯数字。示例:60代表60毫秒。

    • 秒:数字+s。示例:30s代表30秒。

    • 小时:数字+h。示例:2h代表2小时。

    • 天:数字+d。示例:1d代表1天。

    说明
    • 建议您设置的Binlog保留时间不小于binlog_ttl参数的默认值。若设置的保留时间过短,可能会导致文件被清理,影响数据同步。

    • 如果您需要查看当前Binlog保留时长,执行语句SHOW CREATE TABLE source_table;

  4. 使用DTS订阅Binlog。

    DTS通过订阅Binlog,可实现AnalyticDB for MySQL集群之间的数据同步增量迁移

  5. (可选)查看Binlog信息。

    说明

    使用以下语句查看Binlog日志信息时,若仅开启Binlog功能,日志信息显示为0。只有成功订阅Binlog后,才会显示日志信息。

    • 若您需要获取Binlog最新写入的文件名和位置信息,请执行以下SQL语句:

      SHOW MASTER STATUS FOR source_table;
    • 若您需要了解所有未清理的历史Binlog文件及其大小,请执行以下SQL语句:

      SHOW BINARY LOGS FOR source_table;