このトピックでは、Data Transmission Service (DTS) を使用して AnalyticDB for MySQL のバイナリログをサブスクライブし、AnalyticDB for MySQL クラスター間でデータ同期と増分データ移行を実行する方法について説明します。
前提条件
AnalyticDB for MySQL クラスターは、Enterprise Edition、Basic Edition、Data Lakehouse Edition、または エラスティックモードの Data Warehouse Edition です。
AnalyticDB for MySQL クラスターのマイナーバージョンは 3.2.1.0 以降です。
説明AnalyticDB for MySQL クラスターのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、クラスター情報 ページの 構成情報 セクションに移動します。
AnalyticDB for MySQL クラスターで Change Data Capture (CDC) 機能が有効になっています。
説明CDC 機能はデータの変更をキャプチャし、増分データ同期と移行をサポートします。CDC 機能を有効にするか、有効になっているかを確認するには、テクニカルサポートにお問い合わせください。
制限事項
XUANWU_V2 テーブルではバイナリログ機能を有効にできません。この場合、バイナリログをサブスクライブして AnalyticDB for MySQL クラスター間で XUANWU_V2 テーブルのデータ同期または増分データ移行を実行することはできません。
手順
AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理するクラスターを見つけ、クラスター ID をクリックします。
ソース AnalyticDB for MySQL クラスターのテーブルでバイナリログ機能を有効にします。この例では、`source_table` という名前のテーブルを使用します。
説明バイナリログ機能は、AnalyticDB for MySQL のテーブルでのみ有効にできます。
テーブル作成時にバイナリログ機能を有効にする
CREATE TABLE source_table ( `id` INT, `num` BIGINT, PRIMARY KEY (`id`) )DISTRIBUTED BY HASH (id) BINLOG=true;既存のテーブルでバイナリログ機能を有効にする
ALTER TABLE source_table BINLOG=true;(オプション) バイナリログの保持期間を変更します。
binlog_ttlパラメーターを変更して、バイナリログの保持期間を変更できます。パラメーターのデフォルト値は 6h です。次の文を実行して、`source_table` テーブルのバイナリログの保持期間を 1 日に変更します。ALTER TABLE source_table binlog_ttl='1d';binlog_ttlパラメーターは、次のフォーマットの値をサポートします。ミリ秒: 純粋な数値。たとえば、
60は 60 ミリ秒を指定します。秒: 数値 + s。たとえば、
30sは 30 秒を指定します。時間: 数値 + h。たとえば、
2hは 2 時間を指定します。日: 数値 + d。たとえば、
1dは 1 日を指定します。
説明カーネルバージョンが 3.2.1.9 以降 (バージョン 3.2.1 の場合)、3.2.2.14 以降 (バージョン 3.2.2 の場合)、3.2.3.8 以降 (バージョン 3.2.3 の場合)、3.2.4.4 以降 (バージョン 3.2.4 の場合)、または 3.2.5.1 以降 (バージョン 3.2.5 の場合) のクラスターでは、バイナリログの最大保持期間は 365 日です。前述のバージョンより前のカーネルバージョンを持つクラスターの場合、バイナリログの最大保持期間は 21 日です。
バイナリログの保持期間は、
binlog_ttlパラメーターのデフォルト値以上に設定することをお勧めします。保持期間を小さい値に設定すると、バイナリログが削除され、データ同期が失敗する可能性があります。バイナリログの現在の保持期間をクエリするには、
SHOW CREATE TABLE source_table;文を実行します。
(オプション) バイナリログに関する情報を表示します。
説明次の SQL 文を実行してバイナリログに関する情報をクエリした後、バイナリログ機能を有効にしただけの場合は 0 が返されます。ログ情報は、バイナリログをサブスクライブした後にのみ表示されます。
最新のバイナリログのファイル名と場所をクエリするには、次の文を実行します。
SHOW MASTER STATUS FOR source_table;クリアされていないすべての履歴バイナリログとそのサイズをクエリするには、次の文を実行します。
SHOW BINARY LOGS FOR source_table;