変更追跡は、ソースデータベースからの増分データをリアルタイムで監視し、軽量なキャッシュ更新、非同期のビジネスデカップリング、リアルタイムの ETL (抽出・変換・書き出し) パイプラインなどのユースケースを可能にします。
このトピックでは、ApsaraDB RDS for MySQL インスタンスの変更追跡タスクを作成する方法について説明します。
前提条件
開始する前に、以下が準備できていることを確認してください:
ApsaraDB RDS for MySQL インスタンス。 サポートされているデータベースバージョンについては、「変更追跡シナリオの概要」をご参照ください。
変更追跡インスタンスを実行するためのVPC と vSwitch。
ソースインスタンスで必要な権限を持つデータベースアカウント (下記の「データベースアカウントの要件」をご参照ください)。
正しく設定されたバイナリログ設定 (下記の「バイナリログの要件」をご参照ください)。
データベースアカウントの要件
Data Transmission Service (DTS) をソースインスタンスに接続するために使用するデータベースアカウントには、次のいずれかの権限セットが必要です:
インスタンスに対する読み取り専用権限、または
次の 4 つの権限すべてを持つカスタムアカウント:REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、SELECT。
<dts_user> を実際のデータベースアカウント名に置き換えてください。
バイナリログの要件
変更追跡タスクを開始する前に、以下のバイナリログ設定が適用されている必要があります。これらのいずれかが欠けていると、事前チェックが失敗します。
| パラメーター | 必須値 | 確認方法 |
|---|---|---|
| バイナリログ | 有効 (ApsaraDB RDS for MySQL ではデフォルトで有効) | バイナリログはデフォルトで有効になっています。 |
binlog_row_image | full | SHOW VARIABLES LIKE 'binlog_row_image';ApsaraDB RDS for MySQL インスタンスのパラメーターを表示する |
| バイナリログの保持期間 — ApsaraDB RDS for MySQL | 3 日以上 (7 日を推奨) | 詳細については、「バイナリログファイルの管理 |
| バイナリログの保持期間 — セルフマネージド MySQL | 7 日以上 | my.cnf または my.ini で binlog_expire_log_days |
バイナリログの保持期間が短すぎると、DTS がログを取得できず、タスクが失敗する可能性があります。例外的なケースでは、これによりデータ損失が発生する可能性があります。保持期間の要件が満たされない場合、DTS サービスレベルアグリーメント (SLA) はサービスの信頼性やパフォーマンスを保証しません。
制限事項
タスクを作成する前に、以下の制限事項を確認してください。
ソースデータベース
| 制限事項 | 詳細 |
|---|---|
| 主キーまたは一意制約 | ソーステーブルには PRIMARY KEY または UNIQUE 制約が必要で、すべてのフィールドが一意である必要があります。これがない場合、追跡されたデータ変更に重複が含まれる可能性があります。 |
| 追跡対象テーブルの最大数 | 変更追跡タスクごとに最大 500 テーブルまでです。500 を超えるテーブルを追跡する変更追跡タスクを実行すると、リクエストエラーが発生します。この場合、複数のタスクをバッチで設定するか、データベース全体を追跡してください。 |
| FLOAT と DOUBLE の精度 | DTS は ROUND(COLUMN,PRECISION) を使用してこれらの列から値を取得します。デフォルトの精度は FLOAT で 38 桁、DOUBLE で 308 桁です。タスクを開始する前に、デフォルトの精度が要件を満たしていることを確認してください。 |
| pt-online-schema-change DDL | DTS は pt-online-schema-change によって実行される DDL 操作を追跡しません。これにより、変更追跡クライアントが消費したデータを送信先に書き込む際にスキーマの競合が発生する可能性があります。 |
| 行サイズの制限 | 16 MB を超える行は消費できません。消費しようとすると、変更追跡クライアントでメモリ不足 (OOM) エラーが発生します。 |
| 読み取り専用または一時インスタンス | インスタンスはトランザクションログを記録する必要があります。確認するには、RDS コンソールにログインするか (「読み取り専用 RDS インスタンスの表示」をご参照ください)、SHOW VARIABLES LIKE 'read_only'; を実行します。結果が ON の場合、インスタンスは読み取り専用です。 |
タスクの回復
DTS タスクが失敗した場合、DTS サポートは 8 時間以内に復旧を試みます。復旧中、タスクが再起動されたり、タスクパラメーターが変更されたりすることがあります。データベースパラメーターは変更されません。
変更追跡タスクの作成
ステップ 1: [変更追跡タスク] ページへの移動
DTS コンソールまたは DMS コンソールのいずれかを使用します。
DTS コンソール
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、[変更追跡] をクリックします。
左上隅で、変更追跡インスタンスが存在するリージョンを選択します。
DMS コンソール
正確なナビゲーション パスは、お客様の DMS コンソール モードおよびレイアウトによって異なる場合があります。詳細については、「シンプル モード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソールにログインします。
トップナビゲーションバーで、[Data + AI] > [DTS (DTS)] > [変更の追跡] にポインターを合わせます。
[変更追跡タスク] の右側で、変更追跡インスタンスが存在するリージョンを選択します。
ステップ 2: ソースデータベースとコンシューマーネットワークの設定
[タスクの作成] をクリックします。
タスク設定ページで、パラメーターを入力する前に、上部に表示されている [制限事項] を確認します。
以下のパラメーターを設定します:
全般
| パラメーター | 説明 |
|---|---|
| タスク名 | DTS が自動的に名前を割り当てます。オプションで、タスクを識別しやすくするために、わかりやすい名前を入力できます。一意の名前は必要ありません。 |
ソースデータベース
| パラメーター | 説明 |
|---|---|
| 既存の接続を選択 | 既存のデータベース接続を選択して以下のパラメーターを自動入力するか、接続を手動で設定します。新しい接続を登録するには、DTS コンソールでは [データベース接続] ページを使用し、DMS コンソールでは [DMS データベースインスタンスの追加] をクリックします。詳細については、「データベース接続の管理」をご参照ください。 |
| データベースタイプ | [MySQL] を選択します。 |
| アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンスリージョン | ソースの ApsaraDB RDS for MySQL インスタンスが存在するリージョン。 |
| Alibaba Cloudアカウント全体でのデータの複製 | 同一アカウントでのアクセスの場合は [いいえ] を選択します。クロスアカウントアクセスの場合は [はい]アラート通知設定を選択し、[Alibaba Cloud アカウント] と [RAM ロール名] を指定します。クロスアカウントアクセスには Resource Access Management (RAM) 認可も必要です。詳細については、「クロスアカウント DTS タスクの RAM 認可の設定」をご参照ください。 |
| RDS インスタンス ID | ApsaraDB RDS for MySQL インスタンスの ID。 |
| データベースアカウント | 必要な権限を持つデータベースアカウント (「データベースアカウントの要件」をご参照ください)。 |
| データベースパスワード | データベースアカウントのパスワード。 |
| 暗号化 | [非暗号化] または [SSL 暗号化] を選択します。[SSL 暗号化] を選択した場合は、まず RDS インスタンスで SSL 暗号化を有効にします。詳細については、「SSL 暗号化を設定する」をご参照ください。 |
消費者ネットワークタイプ
| パラメーター | 説明 |
|---|---|
| ネットワークタイプ | [VPC] に固定されています。変更追跡インスタンスの [VPC] と [vSwitch] を選択します。ご利用の変更追跡クライアントが VPC にデプロイされている場合は、同じ VPC と vSwitch を選択してネットワーク遅延を最小限に抑えます。タスクが設定された後は、この設定は変更できません。詳細については、「VPC」をご参照ください。 |
[接続をテストして続行] をクリックします。
DTS サーバーの CIDR ブロックがソースデータベースのセキュリティ設定に追加されていることを確認してください。詳細については、「DTS サーバーの CIDR ブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。ソースデータベースがセルフマネージドの場合、[接続テスト] を [DTS サーバーの CIDR ブロック] ダイアログボックスでクリックします。
ステップ 3: 変更追跡オブジェクトの選択
[オブジェクトの設定] ページで、以下を設定します:
| パラメーター | 説明 |
|---|---|
| データ変更タイプ | 固定されており、変更できません。[データ更新] は、選択したオブジェクトに対する INSERT、DELETE、UPDATE 操作を追跡します。[スキーマ更新] は、ソースインスタンス内のすべてのオブジェクトスキーマに対する作成、削除、変更操作を追跡します。変更追跡クライアントを使用して、追跡データをフィルタリングします。 |
| ソースオブジェクト | 1つ以上のオブジェクトを選択し、 |
ステップ 4: 詳細設定
[次へ: 詳細設定] をクリックし、以下のパラメーターを設定します:
| パラメーター | 説明 |
|---|---|
| タスクスケジューリング専用クラスター | DTS 専用クラスターとはデフォルトでは、タスクは共有クラスター上で実行されます。専用クラスター上で実行する場合は、事前に専用クラスターを購入してください。詳細については、「」をご参照ください。 |
| 接続失敗時の再試行時間 | DTS が接続失敗後に再試行を継続する時間です。有効な値:10~1440 分。デフォルト値:720 分。この値は最低でも 30 分に設定してください。この時間内に DTS が再接続できた場合、タスクは自動的に再開されます。それ以外の場合はタスクが失敗します。注:複数のタスクが同一のデータベースインスタンスを共有している場合、最も短い再試行時間が優先されます。再試行中も DTS の課金は継続されるため、要件に応じて適切な時間帯を設定してください。 |
| その他の障害発生時の再試行時間 | DDL または DML 操作の失敗後に DTS が再試行を継続する時間です。有効な値:1~1440 分。デフォルト値:10 分。この値は最低でも 10 分に設定してください。また、この値は「接続失敗時の再試行時間」より短く設定する必要があります。 |
| 転送および逆再生タスクのハートビートテーブルに対する SQL 操作の削除有無 | DTS がソースデータベースに対してハートビートテーブルの SQL 操作を書き込むかどうかを制御します。[はい]:SQL 操作を書き込みません — モニタリングで変更追跡の遅延が検出される場合があります。[いいえ]:SQL 操作を書き込みます — ソースデータベースの物理バックアップおよびクローン作成に影響を及ぼす可能性があります。 |
| 環境タグ | DTS インスタンスの環境を識別するための任意のタグです。 |
| モニタリングとアラート機能 | [はい]DTS タスクの作成時にモニタリングとアラート機能を設定する を選択すると、タスクの失敗や変更追跡の遅延がしきい値を超えた際にアラート通知を受け取ることができます。有効化した場合は、アラートのしきい値および通知設定を構成してください。詳細については、「」をご参照ください。 |
ステップ 5: 設定の保存と事前チェックの実行
[次へ: タスク設定を保存して事前チェック] をクリックします。
このタスク設定の API パラメーターをプレビューするには、[次へ: タスク設定を保存して事前チェック] にポインターを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
タスクを開始する前に、事前チェックに合格する必要があります。
いずれかの項目が失敗した場合は、失敗した項目の横にある [詳細の表示] をクリックし、エラーメッセージに基づいて問題を解決してから、再度事前チェックを実行します。
項目がアラートを生成した場合:
アラートを無視できない場合は、[詳細の表示] をクリックして問題を解決し、再度事前チェックを実行します。
アラートを無視できる場合は、[アラート詳細の確認] をクリックします。ダイアログボックスで、[無視] > [OK] をクリックし、次に [再度事前チェック] をクリックします。
注意:アラート項目を無視すると、データの不整合が発生する可能性があります。無視する前に、各アラートを慎重に評価してください。
ステップ 6: 変更追跡インスタンスの購入
[成功率] が [100%] に達するのを待ってから、[次へ: インスタンスの購入] をクリックします。
[購入] ページで、課金方法を選択します:
| 課金方法 | 説明 |
|---|---|
| サブスクリプション | 固定期間分を前払いします。長期利用の場合、よりコスト効率が高くなります。利用可能な期間:1~9 か月、1 年、2 年、3 年、または 5 年。課金タイプとしては [フルプライス設定料金 (データトラフィック料金なし)] のみが利用可能です。 |
| 従量課金 | 時間単位で課金されます。短期または予測不能な使用量に最適です。不要になったらインスタンスをリリースして、不要な料金を回避してください。 |
オプションで、インスタンスをリソースグループに割り当てます。デフォルトは [デフォルト リソースグループ] です。詳細については、「Resource Management とは?」をご参照ください。
[Data Transmission Service (従量課金) 利用規約] を読み、選択します。
[購入して開始] をクリックします。タスクがタスクリストに表示されます。そこで進捗を監視します。
次のステップ
変更追跡タスクの実行が開始されたら、コンシューマーグループを作成して、ダウンストリームクライアントが追跡データを消費できるようにします。