Data Transmission Service (DTS) の変更追跡機能を使用すると、ソースデータベースからのリアルタイムのデータ変更をキャプチャできます。この機能は、軽量なキャッシュ更新、非同期のビジネスロジック、抽出、変換、ロード (ETL) プロセスによるリアルタイムデータ同期などのユースケースをサポートします。このトピックでは、ApsaraDB RDS for MySQL データベースの変更追跡インスタンスを作成する方法について説明します。
注意事項
- gh-ost や pt-online-schema-change などのツールによって行われたオンライン DDL 変更は追跡されません。その結果、スキーマの不一致により、クライアントが消費したデータを宛先テーブルに書き込めなくなる可能性があります。
- ソースデータベースが、実行中のデータ移行タスクなど、別のタスクの一部である場合、サブスクリプション範囲外のオブジェクトのデータが追跡される可能性があります。その場合は、クライアントアプリケーションで不要なデータを手動でフィルターする必要があります。
操作手順
- 変更追跡インスタンスを購入します。詳細については、「変更追跡タスクの購入」をご参照ください。
- DTS コンソールにログインします。
- 左側のナビゲーションウィンドウで、変更の記録 をクリックします。
- 変更追跡タスク ページの上部で、変更追跡インスタンスが配置されているリージョンを選択します。
- 変更追跡インスタンスを見つけて、[タスクの設定] をクリックします。
- ソースデータベース情報とネットワークタイプを設定します。
カテゴリ パラメーター 説明 N/A タスク名 DTS は自動的にタスク名を生成します。タスクを容易に識別できるよう、わかりやすい名前を指定してください。名前は一意である必要はありません。 ソースデータベース インスタンスタイプ ソースインスタンスタイプを選択します。この例では、RDS インスタンス を選択します。 説明 ソースが自己管理データベースの場合は、追加の準備手順を実行する必要があります。詳細については、「準備の概要」をご参照ください。データベースタイプ MySQL に固定され、変更できません。 インスタンスリージョン インスタンスの購入時に選択したリージョンです。この設定は変更できません。 RDS インスタンス ID 追跡する ApsaraDB RDS for MySQL インスタンスの ID を選択します。 説明 読み取り専用インスタンスまたは一時インスタンスを、変更追跡のソースインスタンスとして使用することはできません。データベースアカウント ソース ApsaraDB RDS for MySQL インスタンスのデータベースアカウントを入力します。 説明- アカウントには、サブスクリプションオブジェクトに対する REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、および SELECT 権限が必要です。
- MySQL 5.5MySQL 5.6データベースアカウントデータベースのパスワードソース ApsaraDB RDS for MySQL インスタンスが MySQL 5.5 または MySQL 5.6 を実行している場合、データベースアカウントとデータベースパスワードのパラメーターを設定する必要はありません。
データベースパスワード データベースアカウントのパスワードを入力します。 ネットワークタイプ - クラシックネットワーク
- 独自のネットワーク
説明- クライアントがオンプレミスにデプロイされている場合、クラシックネットワーク または 独自のネットワーク のいずれかを選択できます。
- クライアントが ECS インスタンスにデプロイされている場合は、ECS インスタンスと同じネットワークタイプを選択することを推奨します。たとえば、ECS インスタンスが VPC にある場合は、ここで [VPC] を選択し、ECS インスタンスと同じ 独自のネットワーク と vSwitch を指定します。
- 変更追跡に内部エンドポイントを使用すると、ネットワーク遅延が最も低くなります。
- クラシックネットワーク
クラシックネットワーク を選択した場合、追加の設定は不要です。詳細については、「クラシックネットワーク」をご参照ください。
- 独自のネットワーク
独自のネットワーク を選択した場合、独自のネットワーク と vSwitch も指定する必要があります。 詳細については、「VPC」をご参照ください。
- これらの設定が完了したら、[ホワイトリストの設定と次へ] をクリックします。
DTS は、そのサーバーの CIDR ブロックをソースデータベースの設定に自動的に追加します。ApsaraDB RDS for MySQL や ApsaraDB for MongoDB などの Alibaba Cloud データベースインスタンスの場合、CIDR ブロックはインスタンスのホワイトリストに追加されます。ECS インスタンス上の自己管理データベースの場合、DTS は CIDR ブロックをセキュリティグループルールに追加しますが、データベースのホワイトリストにも手動で追加する必要があります。他のシナリオで必要な CIDR ブロックの詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。
警告 パブリック CIDR ブロックを追加すると、セキュリティリスクが生じます。強力なパスワードの使用、オープンポートの制限、内部 API の認証、ネットワークアクセスの定期的な確認、Express Connect、VPN Gateway、または Smart Access Gateway を介したプライベートネットワーク接続の使用などの予防措置を講じることで、これらのリスクを軽減してください。 - [変更追跡アカウントの作成] ダイアログボックスで、アカウントが作成されるのを待ってから、次へ をクリックします。
説明 MySQL 5.5MySQL 5.6この手順は、ソース ApsaraDB RDS for MySQL インスタンスが または を実行している場合にのみ必要です。この手順では、DTS は変更追跡のためにソースインスタンスに専用のデータベースアカウントを作成します。
- 追跡するデータの種類とオブジェクトを設定します。
パラメーター 説明 必要なデータの種類 - データの更新
選択したオブジェクトのデータ変更 (INSERT、DELETE、UPDATE 操作) をサブスクライブします。
- スキーマの更新
インスタンス内のすべてのオブジェクトのスキーマ変更 (CREATE、DROP、ALTER 操作) をサブスクライブします。必要なデータはクライアントアプリケーションでフィルターする必要があります。
説明- データベース全体をサブスクリプションオブジェクトとして選択した場合、そのデータベースに追加された新しいオブジェクトへのデータ変更も追跡されます。
- 特定のテーブルをサブスクリプションオブジェクトとして選択した場合、そのテーブルへのデータ変更のみが追跡されます。新しいテーブルを追跡するには、サブスクリプションオブジェクトに追加する必要があります。詳細については、「変更追跡のオブジェクトの変更」をご参照ください。
必要なオブジェクト [必須オブジェクト] ボックスで、追跡するオブジェクトを選択し、 アイコンをクリックして 選択中のオブジェクト ボックスに移動します。
説明 オブジェクトは、データベースまたはテーブルレベルで選択できます。 - データの更新
- 設定が完了したら、ページの右下隅にある [保存して事前チェック] をクリックします。説明
- タスクは、事前チェックに合格した後にのみ開始できます。
- 事前チェックが失敗した場合は、失敗した項目の横にある アイコンをクリックして詳細を表示します。問題を修正した後、再度事前チェックを実行してください。
- 事前チェック ダイアログボックスに事前チェック完了 メッセージが表示されたら、事前チェック ダイアログボックスを閉じます。
タスクを設定すると、変更追跡インスタンスが初期化されます。これには約 1 分かかります。初期化が完了すると、コンシューマーグループを作成し、追跡データの消費を開始できます。