本文為您介紹如何使用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功能後進行訂閱。