すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:Express Connect回線、VPNゲートウェイ、またはSAGインスタンスを介して接続されたセルフマネージドMySQLインスタンスから、Alibaba Cloudアカウント全体でApsaraDB RDS for MySQLインスタンスにデータを移行する

最終更新日:Nov 14, 2024

このトピックでは、data Transmission Service (DTS) を使用して、Express Connect回線、VPNゲートウェイ、またはSmart Access gateway (SAG) インスタンスを介して接続された自己管理型MySQLインスタンスからApsaraDB RDS for MySQLインスタンスにデータを移行する方法について説明します。 このシナリオでは、Express Connect回路、VPNゲートウェイ、またはSAGインスタンス、および接続先のApsaraDB RDS for MySQL インスタンスは異なるAlibaba Cloudアカウントに属しています。 DTS はフルデータ移行と増分データ移行に対応しています。 セルフマネージドMySQLインスタンスからデータを移行する場合、サポートされているすべての移行タイプを選択して、ビジネスの継続性を確保できます。

前提条件

  • 自己管理型MySQLデータベースのエンジンバージョンは、5.1、5.5、5.6、5.7、または8.0です。

  • ApsaraDB RDS for MySQLインスタンスの使用可能なストレージが、自己管理型MySQLインスタンスのデータの合計サイズよりも大きいこと。

  • セルフマネージドMySQLインスタンスが属するオンプレミスネットワークは、Express Connect回線、VPNゲートウェイ、またはSAGインスタンスを介してAlibaba Cloud仮想プライベートクラウド (VPC) に接続されています。 Express Connect回線、VPNゲートウェイ、またはSAGインスタンス、および接続先のApsaraDB RDS for MySQL インスタンスは異なるAlibaba Cloudアカウントに属しています。

    説明

    アクセス方法の詳細については、「準備の概要」をご参照ください。

背景情報

インスタンスをホストするデータセンターは、Express Connect回線、VPNゲートウェイ、またはSAGインスタンスを介してAlibaba Cloudに接続されています。 VPC経由でさまざまなAlibaba Cloudアカウント間で、セルフマネージドMySQLインスタンスからRDSインスタンスにデータを移行します。 次の図は、このシナリオのアーキテクチャを示しています。

image

制限事項

  • DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。

  • 移行元データベースで移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。

  • DTSはROUND(COLUMN,PRECISION) 関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の精度を38桁に設定し、DOUBLEデータ型の精度を308桁に設定します。 業務要件を満足する精度が設定されていることを確認する必要があります。

  • DTSは、ApsaraDB RDS for MySQLインスタンスにターゲットデータベースを自動的に作成します。 ただし、ソースデータベースの名前が無効な場合は、データ移行タスクを設定する前に、ApsaraDB RDS for MySQLインスタンスにデータベースを手動で作成する必要があります。

    説明

    ApsaraDB RDS For MySQLデータベースのデータベース命名規則とデータベースの作成方法の詳細については、「ApsaraDB RDS for MySQLインスタンスのデータベースを作成」をご参照ください。

  • データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 ワークロードをターゲットインスタンスに切り替える前に、データ移行タスクを停止またはリリースします。 それ以外の場合、タスクの再開後、ソースデータベースのデータがターゲットインスタンスのデータを上書きします。

課金ルール

移行タイプ

タスク設定料金

インターネットトラフィック料金

スキーマ移行とフルデータ移行

無料です。

インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。

増分データ移行

有料。 詳細については、「課金の概要」をご参照ください。

移行タイプ

  • スキーマの移行

    必要なオブジェクトのスキーマをターゲットインスタンスに移行します。 DTSは、テーブル、ビュー、トリガー、ストアドプロシージャ、関数のタイプのオブジェクトのスキーマ移行をサポートしています。

    説明
    • スキーマ移行中、ビュー、ストアドプロシージャ、関数の SECURITY 属性値は DEFINER から INVOKER に変更されます。

    • ユーザー情報は移行されません。 ターゲットデータベースのビュー、ストアドプロシージャ、または関数を呼び出すには、INVOKERに読み取りおよび書き込み権限を付与する必要があります。

  • フルデータ移行

    DTSは、必要なオブジェクトの履歴データを自己管理型MySQLデータベースからApsaraDB RDS for MySQLインスタンスのターゲットデータベースに移行します。

    説明

    完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全なデータ移行が完了すると、移行先データベースのテーブルスペースは移行元データベースのテーブルスペースよりも大きくなります。

  • 増分データ移行

    完全なデータ移行が完了すると、DTSは自己管理型MySQLデータベースからバイナリログファイルを取得します。 次に、DTSは、自己管理型MySQLデータベースの増分データをターゲットApsaraDB RDS for MySQLインスタンスに同期します。 増分データ移行により、自己管理型MySQLデータベースからAlibaba Cloudにデータを移行する際に、サービスの継続性を確保できます。

増分データ移行中に同期できる SQL 操作

操作タイプ

SQL文

DML

INSERT、UPDATE、DELETE、および REPLACE

DDL

  • ALTER TABLEとALTER VIEW

  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、およびCREATE VIEW

  • ドロップインデックスとドロップテーブル

  • RENAMEテーブル

  • TRUNCATE TABLE

データベースアカウントに必要な権限

データベース

スキーマ移行

完全なデータ移行

増分データ移行

自己管理型 MySQL データベース

SELECT 権限

SELECT 権限

REPLICATION SLAVE、REPLICATION CLIENT、SHOW VIEW、およびSELECT権限

ApsaraDB RDS for MySQL インスタンス

読み書き権限

読み書き権限

読み書き権限

アカウントを作成し、アカウントに権限を付与する方法の詳細については、以下のトピックを参照してください。

始める前に

  1. セルフマネージドMySQLインスタンスのアカウントを作成し、バイナリログを設定します

  2. Express Connect回線を所有するAlibaba Cloudアカウントを使用して、Alibaba Cloud管理コンソールにログインします。 Express Connect経由で接続されているネットワークへのアクセスをDTSに許可します。 詳細については、「VPN Gatewayを使用したデータセンターのDTSへの接続」をご参照ください。

  3. RAMロールを作成し、Express Connect回路が属するAlibaba Cloudアカウントのリソースへのアクセスを許可します。 詳細については、「異なるAlibaba Cloudアカウント間のVPC内の自己管理データベースからのデータ移行または同期のためのRAM認証の設定」をご参照ください。

手順

  1. RDSインスタンスが属するAlibaba Cloudアカウントを使用してDTSコンソールにログインします。

    説明

    Data Management (DMS) コンソールにリダイレクトされている場合は、右下隅にあるoldアイコンをクリックして、以前のバージョンのDTSコンソールに移動します。

  2. 左側のナビゲーションウィンドウで、[データ移行] をクリックします。

  3. [移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。

  4. ページの右上隅にある [移行タスクの作成] をクリックします。

  5. インスタンスタイプとして、Express Connect、VPN Gateway、またはSmart Access Gatewayで接続されたユーザー作成データベースを選択します。 次に、[他のAlibabaクラウドアカウントのVPC] をクリックします。

    选择跨阿里云的专有网络

  6. ソースデータベースとターゲットデータベースを設定します。

    配置源和目标库信息

    セクション

    パラメーター

    説明

    N/A

    タスク名

    DTSが自動的に生成するタスク名。 わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    移行元データベース

    インスタンスタイプ

    ソースインスタンスのアクセス方法。 Express Connect、または VPN Gateway、または Smart Access Gateway 経由で接続されたユーザー作成のデータベース を選択します。

    インスタンスリージョン

    自己管理型MySQLインスタンスに接続されているVPCのリージョン。

    Alibaba CloudアカウントID

    自己管理型インスタンスのAlibaba CloudアカウントのID。

    説明

    Alibaba CloudアカウントのIDを取得するには、このアカウントを使用して [セキュリティ設定] コンソールにログインする必要があります。 [アカウントID][セキュリティ設定] ページに表示されます。

    image

    ロール

    データ移行タスクを設定する前に作成したRAMロールの名前。 詳細については、「開始前」をご参照ください。

    ピア VPC

    自己管理型MySQLインスタンスに接続されているVPCのID。

    データベースエンジン

    ソースインスタンスの種類。 この例では、MySQLが選択されています。

    IP アドレス

    自己管理型MySQLインスタンスへのアクセスに使用されるエンドポイント。

    ポート番号

    自己管理型MySQLインスタンスのサービスポート番号。 デフォルト値: 3306

    データベースアカウント

    自己管理型MySQLインスタンスのアカウント。 アカウントに必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    説明

    ソースデータベースに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。

    ターゲットデータベース

    インスタンスタイプ

    RDSインスタンスのインスタンスタイプ。 この例では、RDSインスタンスが選択されています。

    インスタンスリージョン

    RDSインスタンスが存在するリージョン。

    RDS インスタンス ID

    RDS インスタンスの ID

    データベースアカウント

    RDSインスタンスのデータベースアカウント。 アカウントに必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    説明

    RDSインスタンスに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。

    暗号化

    接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、[非暗号化] または [SSL暗号化] を選択します。 SSL暗号化を選択した場合、データ移行タスクを設定する前に、RDSインスタンスのSSL暗号化を有効にする必要があります。 詳細については、「ApsaraDB RDS for MySQLインスタンスのSSL暗号化の設定 」をご参照ください。

    説明

    Encryptionパラメーターは、中国本土および中国 (香港) リージョンのリージョンでのみ使用できます。

  7. ページの右下隅にある [ホワイトリストと次への設定] をクリックします。

    警告

    DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。

  8. 移行タイプと移行するオブジェクトを選択します。

    Select the migration types and the objects to be migrated

    設定

    説明

    移行タイプの選択

    • 完全移行のみを実行するには、[スキーマ移行] および [完全データ移行] を選択します。

    • データ移行中のサービスの継続性を確保するには、[スキーマ移行][フルデータ移行] 、および [増分データ移行] を選択します。

    説明

    増分データ移行が選択されていない場合、データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。

    移行するオブジェクトの選択

    [使用可能] セクションから1つ以上のオブジェクトを選択し、Rightwards arrowアイコンをクリックして、オブジェクトを [選択済み] セクションに移動します。

    説明
    • 移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。

    • 既定では、オブジェクトがターゲットデータベースに移行された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

    • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。

    オブジェクトの名前を変更するかどうかを指定する

    オブジェクト名マッピング機能を使用して、移行先インスタンスに移行されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

    ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間の指定

    既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

    説明

    DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

    DMSがソーステーブルに対してオンラインDDL操作を実行するときに、一時テーブルをターゲットデータベースにコピーするかどうかを指定します。

    Data Management (DMS) を使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルを移行するかどうかを指定できます。

    • はい: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行します。

      説明

      オンラインDDL操作で大量のデータが生成される場合、データ移行タスクが遅延する可能性があります。

    • No: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行しません。 移行元データベースの元のDDLデータのみが移行されます。

      説明

      [いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。

  9. ページの右下隅にある [事前チェック] をクリックします。

    説明
    • データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるInfo iconアイコンをクリックして詳細を表示できます。

      • 原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。

      • 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。

  10. タスクが事前チェックに合格したら、[次へ] をクリックします。

  11. [設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。

  12. [購入と開始] をクリックして、データ移行タスクを開始します。

    • スキーマ移行とフルデータ移行

      フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 データ移行タスクが自動的に停止するまで待つことができます。

    • スキーマ移行、完全データ移行、および増分データ移行

      増分データ移行タスクは自動的に停止しません。 タスクを手動で停止する必要があります。

      重要

      データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードを移行先クラスターに切り替える前にタスクを停止できます。

      1. 増分データ移行移行タスクが遅延しませんが移行タスクのプログレスバーに表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。

      2. 増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。 Stop an incremental data migration task

  13. ワークロードをRDSインスタンスに切り替えます。