Data Transmission Service (DTS) を使用して、データベースからのデータ変更をリアルタイムで追跡できます。 変更追跡機能は、軽量キャッシュ更新、ビジネスのデカップリングと非同期データ処理、抽出、変換、読み込み (ETL) 操作の同期などのシナリオで使用できます。 このトピックでは、ApsaraDB RDS for MySQLインスタンスからのデータ変更を追跡する方法について説明します。
注意事項
DTSは、gh-ostまたはpt-online-schema-changeを使用して実行されるDDL操作を追跡しません。 したがって、変更追跡クライアントは、スキーマの競合により、消費されたデータを宛先テーブルに書き込むことができない場合があります。
ソースデータベースが実行中のデータ移行タスクなどの別のタスクに関与している場合、DTSは他のオブジェクトのデータ変更を追跡できます。 この場合、変更追跡クライアントで追跡されたデータを手動でフィルタリングする必要があります。
手順
変更追跡インスタンスを作成します。 詳細については、「変更追跡インスタンスの購入」をご参照ください。
最初に DTSコンソール。
左側のナビゲーションウィンドウで、[追跡の変更] をクリックします。
[変更追跡タスク] ページの上部で、変更追跡インスタンスが存在するリージョンを選択します。
変更追跡インスタンスを見つけ、[操作] 列の [タスクの設定] をクリックします。
変更追跡タスクのソースデータベースとネットワークタイプを設定します。
セクション
パラメーター
説明
非該当
タスク名
DTSが自動的に生成するタスク名。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。
移行元データベース
インスタンスタイプ
ソースインスタンスの種類。 この例では、このパラメーターにRDSインスタンスが選択されています。
説明ソースデータベースが自己管理データベースの場合、データベースのネットワーク環境を展開する必要があります。 詳細については、「準備の概要」をご参照ください。
データベースエンジン
このパラメーターの値はMySQLに設定されており、変更できません。
インスタンスリージョン
次のリクエストの開始に使われる 購入ページで選択したソースリージョン。 このパラメーターの値は変更できません。
RDS インスタンス ID
データの変更を追跡するApsaraDB RDS for MySQLインスタンスのID。
説明読み取り専用インスタンスまたは一時インスタンスは、変更追跡のソースインスタンスとして使用できません。
データベースアカウント
ソースApsaraDB RDS for MySQLインスタンスのデータベースアカウント。
説明アカウントには、必要なオブジェクトに対するSELECT権限と、REPLICATION CLIENT、REPLICATION SLAVE、およびSHOW VIEW権限が必要です。
ソースApsaraDB RDS for MySQLインスタンスのデータベースエンジンがMySQL 5.5またはMySQL 5.6の場合、データベースアカウントまたはデータベースパスワードを設定する必要はありません。
データベースパスワード
ソースApsaraDB RDS for MySQLデータベースのアカウントのパスワード。
ネットワークタイプ
クラシック
[VPC]
変更追跡インスタンスのネットワークタイプ。
説明変更追跡クライアントがローカルサーバーにデプロイされている場合は、[クラシック] または [VPC] を選択します。
変更追跡クライアントが ECSインスタンスのネットワークを選択することを推奨します。 たとえば、ECSインスタンスがVirtual Private Cloud (VPC) にデプロイされている場合、ネットワークタイプとしてVPCを選択し、VPCおよびvSwitchパラメーターを指定します。
内部ネットワーク上のデータ変更を追跡する場合、ネットワーク遅延は最小限に抑えられます。
ページの右下隅にある [ホワイトリストの設定] および [次へ] をクリックします。
警告ソースまたはターゲットのデータベースインスタンスが、ApsaraDB RDS for MySQLまたはApsaraDB for MongoDBインスタンスなどのAlibaba Cloudデータベースインスタンス、またはElastic Compute Service (ECS) でホストされている自己管理型データベースの場合、DTSサーバーのCIDRブロックがデータベースインスタンスのホワイトリストまたはECSセキュリティグループルールに自動的に追加されます。 詳細については、「DTSサーバーのCIDRブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。 ソースデータベースまたはターゲットデータベースがデータセンター上の自己管理データベースである場合、または他のクラウドサービスプロバイダーからのデータベースである場合、DTSサーバーのCIDRブロックを手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。
DTSサーバーのCIDRブロックがデータベースインスタンスまたはECSセキュリティグループルールのホワイトリストに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、アカウントとパスワードのセキュリティを強化し、公開されるポートを制限し、API呼び出しを認証し、ホワイトリストまたはECSセキュリティグループルールを定期的に確認してCIDRブロックを禁止するか、Express connectを使用してデータベースをDTSに接続する。VPNゲートウェイ、またはSmart Access Gateway。
DTSタスクが完了またはリリースされた後、追加されたCIDRブロックをデータベースインスタンスのホワイトリストまたはECSセキュリティグループルールから手動で検出して削除することを推奨します。
[変更トラッキングアカウントの作成] メッセージで、アカウントが作成されるまで待ち、[次へ] をクリックします。
説明この手順は、ソースApsaraDB for MySQLインスタンスのデータベースエンジンがMySQL 5.5またはMySQL 5.6の場合にのみ必要です。 このステップでは、DTSはソースインスタンスの変更追跡用のデータベースアカウントを作成します。
データ変更の種類とオブジェクトを選択します。
パラメーター
説明
必要なデータ型
データ更新
DTSは、INSERT、DELETE、およびUPDATE操作を含む、選択したオブジェクトのデータ更新を追跡します。
スキーマの更新
DTSは、ソースインスタンスのすべてのオブジェクトスキーマで実行される作成、削除、および変更操作を追跡します。 変更追跡クライアントを使用して、必要なデータをフィルタリングする必要があります。
説明オブジェクトとしてデータベースを選択した場合、DTSはデータベース内の新しいオブジェクトを含むすべてのオブジェクトのデータ変更を追跡します。
オブジェクトとしてテーブルを選択した場合、DTSはこのテーブルのデータ変更のみを追跡します。 この場合、別のテーブルのデータ変更を追跡する場合は、選択したオブジェクトにテーブルを追加する必要があります。 詳細については、「変更追跡用オブジェクトの変更」をご参照ください。
必要なオブジェクト
[必須オブジェクト] セクションから1つ以上のオブジェクトを選択し、アイコンをクリックして、オブジェクトを [選択済み] セクションに追加します。
説明変更追跡のオブジェクトとしてテーブルまたはデータベースを選択できます。
ページの右下隅にある [保存して事前チェック] をクリックします。
説明変更追跡タスクを開始する前に、DTSは事前チェックを実行します。 タスクが事前チェックに合格した後にのみ、変更追跡タスクを開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。 原因に基づいて問題をトラブルシューティングした後、再度事前チェックを実行できます。
次のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。[事前チェックに合格]
変更追跡タスクが設定された後、DTSは初期変更追跡を実行します。これには約1分かかります。 最初の変更の追跡が完了したら、1つ以上のコンシューマグループを作成して、追跡されたデータを使用できます。