全部產品
Search
文件中心

AnalyticDB:DTS訂閱binlog

更新時間:Jul 13, 2026

本文為您介紹如何使用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功能是否已開啟,請聯絡支援人員。

操作步驟

  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_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;

  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;

開啟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功能後進行訂閱。