DTS订阅binlog

更新时间:

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

前提条件

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

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

    说明
    • 查看企业版基础版湖仓版集群的内核版本,请执行SELECT adb_version();。如需升级内核版本,请联系技术支持。

    • 查看和升级数仓版集群的内核版本,请参见查看和升级版本

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

    说明

    如需开启CDC功能或不清楚CDC功能是否已开启,请联系技术支持。

操作步骤

  1. 开启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;
  2. (可选)修改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参数的默认值。若设置的保留时间过短,可能会导致文件被清理,影响数据同步。

  3. 使用DTS订阅Binlog。

    DTS通过订阅Binlog,可实现AnalyticDB for MySQL集群之间的数据同步与增量迁移。具体操作,请参见:AnalyticDB MySQL 3.0间的同步AnalyticDB MySQL 3.0间的迁移

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

    说明

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

    • 查看当前写入的Binlog的位点,SQL语句如下:

      SHOW MASTER STATUS FOR source_table;
    • 查看集群内对应表所有Binlog文件的信息,SQL语句如下:

      SHOW BINARY LOGS FOR source_table;