Data Transmission Service (DTS) を使用して、Express Connect、VPN Gateway、またはSmart Access Gatewayを介して接続された自己管理型MySQLインスタンスからApsaraDB RDS for MySQLインスタンスに増分データを同期できます。 リアルタイムで。
前提条件
RDSインスタンスが作成されました。 詳細については、「ApsaraDB RDS For MySQLインスタンスの作成」をご参照ください。
自己管理型MySQLインスタンスは、MySQL 5.1、MySQL 5.5、MySQL 5.6、MySQL 5.7、またはMySQL 8.0を実行します。
自己管理型MySQLインスタンスは、Alibaba Cloud仮想プライベートクラウド (VPC) に接続されています。 詳細については、「CENを使用したオンプレミスデータベースのDTSへの接続」をご参照ください。
説明DTSは、自己管理型MySQLインスタンスが属するVPCにアクセスできます。 詳細については、「VPN Gatewayを使用したデータセンターのDTSへの接続」をご参照ください。
使用上の注意
DTSは、最初の完全データ同期中に、ソースRDSインスタンスとターゲットRDSインスタンスの読み取りおよび書き込みリソースを使用します。 これにより、RDSインスタンスの負荷が増加する可能性があります。 インスタンスのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースRDSインスタンスで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットRDSインスタンスでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データ同期の前に、ソースRDSインスタンスとターゲットRDSインスタンスのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 たとえば、ソースRDSインスタンスとターゲットRDSインスタンスのCPU使用率が30% 未満の場合にデータを同期できます。
データ同期中にオブジェクトに対してDDL操作を実行するために、gh-ostまたはpt-online-schema-changeを使用しないことを推奨します。 そうしないと、データ同期が失敗する可能性があります。
移行元データベースで移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
最初の完全データ同期中に、同時INSERT操作により、ターゲットインスタンスのテーブルが断片化されます。 最初の完全データ同期が完了した後、ターゲットインスタンスの使用済みテーブルスペースのサイズは、ソースインスタンスの使用済みテーブルスペースのサイズよりも大きくなります。
課金
同期タイプ | タスク設定料金 |
スキーマ同期と完全データ同期 | 無料です。 |
増分データ同期 | 有料。 詳細については、「課金の概要」をご参照ください。 |
サポートしている同期トポロジ
一方向の 1 対 1 の同期
一方向の 1 対多の同期
一方向のカスケード同期
一方向の多対 1 の同期
双方向の 1 対 1 の同期
DTSでサポートされている同期トポロジの詳細については、「同期トポロジ」をご参照ください。
同期可能なSQL操作
操作タイプ | SQL文 |
DML | INSERT、UPDATE、DELETE、および REPLACE |
DDL |
|
制限事項
トリガーとの非互換性
同期するオブジェクトとしてデータベースを選択し、そのデータベースにテーブルを更新するトリガーが含まれている場合、データの不整合が発生する可能性があります。 この問題を解決する方法の詳細については、「トリガーを含むソースデータベースのデータ同期タスクの構成」をご参照ください。
RENAME TABLE操作の制限
RENAME TABLE操作は、ソースデータベースと宛先データベースの間にデータの不一致を引き起こす可能性があります。 たとえば、テーブルAのみが同期するオブジェクトとして選択され、テーブルBの名前が変更された場合、テーブルBはターゲットデータベースに同期できません。 このような状況を回避するには、データ同期タスクを設定するときに、テーブルAが配置されているデータベース全体を同期するオブジェクトとして選択します。
準備
データ同期タスクを設定する前に、データベースアカウントを作成し、自己管理型MySQLデータベースのバイナリログを設定する必要があります。 詳細については、「自己管理型MySQLデータベースのアカウントの作成とバイナリログの設定」をご参照ください。
手順
データ同期インスタンスを購入します。 詳細については、「DTSインスタンスの購入」をご参照ください。
説明ソースインスタンスとターゲットインスタンスの両方に [MySQL] を選択します。 同期トポロジとして片道同期を選択します。
最初に DTSコンソール。
説明DTSコンソールからDMSコンソールに移動している場合は、右下隅にあるアイコンの上にポインターを移動し、アイコンをクリックしてDTSコンソールに戻ることができます。
ログイン後に新しいバージョンのDTSコンソールが表示される場合は、右下隅にあるアイコンをクリックして、以前のバージョンに戻ることができます。
左側のナビゲーションウィンドウで、[データ同期] を選択します。
[データ同期タスク] ページの上部で、ターゲットインスタンスが存在するリージョンを選択します。
データ同期インスタンスを見つけ、[操作] 列の [タスクの設定] をクリックします。
ソースデータベースとターゲットデータベースの設定
セクション
パラメーター
説明
N/A
同期タスク名
タスク名は自動生成されます。 タスクを識別するために、有益な名前を指定することを推奨します。 一意のタスク名を使用する必要はありません。
ソースインスタンスの詳細
インスタンスタイプ
ソースインスタンスの種類。 Express Connect、VPN Gateway、またはSmart Access Gateway経由で接続されたユーザー作成データベースを選択します。
インスタンスリージョン
データ同期インスタンスの作成時に選択したソースインスタンスのリージョン。 このパラメーターの値は変更できません。
ピア VPC
自己管理型MySQLインスタンスに接続されているVPCのID。
データベースエンジン
データ同期インスタンスの作成時に選択したデータベースタイプ。 このパラメーターの値はMySQLに設定されており、変更することはできません。
IP アドレス
自己管理型MySQLインスタンスのサーバーIPアドレス。
ポート番号
自己管理型MySQLインスタンスのサービスポート番号。 デフォルト値: 3306
データベースアカウント
自己管理型MySQLインスタンスへの接続に使用されるアカウントのユーザー名。 アカウントには、必要なオブジェクトに対するSELECT権限と、REPLICATION CLIENT、REPLICATION SLAVE、およびSHOW VIEW権限が必要です。
データベースパスワード
前のアカウントのパスワード。
ターゲットインスタンスの詳細
インスタンスタイプ
移行先インスタンスの ID を設定します。 RDS インスタンスを選択します。
インスタンスリージョン
データ同期インスタンスの作成時に選択したターゲットインスタンスのリージョン。 このパラメーターの値は変更できません。
Instance ID
ターゲットインスタンスの ID。
データベースアカウント
宛先RDSインスタンスへの接続に使用されるアカウントのユーザー名。
説明ターゲットRDSインスタンスがMySQL 5.5またはMySQL 5.6を実行している場合、データベースアカウントまたはデータベースパスワードパラメーターを設定する必要はありません。
データベースパスワード
前のアカウントのパスワード。
暗号化
接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、[非暗号化] または [SSL暗号化] を選択します。 SSL暗号化を選択した場合、データ移行タスクを設定する前に、RDSインスタンスのSSL暗号化を有効にする必要があります。 詳細については、以下をご参照ください。「 ApsaraDB RDS for MySQLインスタンスのSSL暗号化の設定 」をご参照ください。
重要Encryptionパラメーターは、中国本土および中国 (香港) リージョン内でのみ使用できます。
ページの右下隅にある [ホワイトリストの設定] および [次へ] をクリックします。
ソースインスタンスまたはターゲットインスタンスがAlibaba Cloudインスタンス (ApsaraDB RDS for MySQLまたはApsaraDB for MongoDBインスタンスなど) の場合、DTSは自動的にDTSサーバーのCIDRブロックをデータベースインスタンスのホワイトリストに追加します。 ソースインスタンスまたはターゲットインスタンスがElastic Compute Service (ECS) でホストされている自己管理データベースの場合、DTSはDTSサーバーのCIDRブロックをECSセキュリティグループルールに自動的に追加します。 この場合、ECSインスタンスから自己管理インスタンスへのアクセス要求が許可されていることを確認してください。 ソースインスタンスまたはターゲットインスタンスがデータセンター内の自己管理インスタンスである場合、または他のクラウドサービスプロバイダーからのインスタンスである場合、DTSサーバーのCIDRブロックを手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。
警告DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを同期する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
同期ポリシーと同期するオブジェクトを選択します。
パラメータ /セクション
説明
同期するオブジェクトの選択
[使用可能] セクションから1つ以上のオブジェクトを選択し、アイコンをクリックして、オブジェクトを [選択済み] セクションに移動します。
同期するオブジェクトとしてテーブルまたはデータベースを選択できます。
説明同期するオブジェクトとしてデータベースを選択した場合、データベース内のすべてのスキーマ変更が同期先データベースに同期されます。
既定では、オブジェクトがターゲットデータベースに同期された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期されるオブジェクトの名前を変更できます。 詳細については、「同期するオブジェクトの名前変更」をご参照ください。
データベースとテーブルの名前変更
オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
DDL中に一時テーブルをターゲットデータベースにコピーするソーステーブルDMS_ONLINE_Do
Data Management (DMS) を使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルを同期するかどうかを指定できます。
Yes: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期します。
説明オンラインDDL操作が大量のデータを生成する場合、データ同期タスクが遅延する可能性があります。
No: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期しません。 ソースデータベースの元のDDLデータのみが同期されます。
説明[いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
失敗した接続の再試行時間
既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
説明DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
初期同期の詳細設定を構成します。
初期同期中に、DTSは必要なオブジェクトのスキーマとデータをソースインスタンスからターゲットインスタンスに同期します。 スキーマおよびデータは、その後の増分同期の基礎となる。
同期初期化には、スキーマ同期初期化と完全データ同期初期化があります。 ほとんどの場合、[初期スキーマ同期] と [初期フルデータ同期] の両方を選択する必要があります。
ページの右下に表示される [事前確認] をクリックします。
重要データ同期タスクを開始する前に、事前チェックが実行されます。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。
原因に基づいて問題をトラブルシューティングした後、再度事前チェックを実行できます。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
[事前チェックに合格] の後に、[事前チェック] ダイアログボックスを閉じます。 [事前チェック] ダイアログボックスにメッセージが表示されます。 その後、データ同期タスクが開始されます。
初期同期が完了し、データ同期タスクが同期状態になるまで待ちます。
[データ同期] ページで、データ同期タスクの状態を確認できます。