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

Data Transmission Service:PolarDB for MySQLクラスターから自己管理型MySQLデータベースへのデータの移行

最終更新日:Jan 22, 2025

このトピックでは、data Transmission Service (DTS) を使用して、PolarDB for MySQLクラスターから自己管理型MySQLデータベースにデータを移行する方法について説明します。 これは、データ分析や機能テストなどのシナリオに適用できます。

前提条件

バイナリログ機能は、ソースPolarDB for MySQLクラスターに対して有効になっています。 詳細については、「binloggingの有効化」をご参照ください。

使用上の注意

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

  • ソースデータベースにはPRIMARY KEYまたはUNIQUE制約が必要で、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
  • 完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全データ移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。
  • データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 したがって、ワークロードをターゲットデータベースに切り替える前に、データ移行タスクを停止またはリリースしてください。 それ以外の場合、タスクの再開後に、ソースデータベースのデータがターゲットデータベースのデータを上書きします。
  • フルデータ移行のためにスロットリングを有効にすることはできません。

制限事項

  • DTSは、スキーマ移行用に、テーブル、ビュー、トリガー、ストアドプロシージャ、および関数のオブジェクトタイプをサポートしています。
    説明 スキーマの移行中、DTSは、ビュー、ストアドプロシージャ、および関数のSECURITY属性の値をDEFINERからINVOKERに変更します。
  • DTSは、ソースデータベースからユーザー情報を移行しません。 データ移行が完了した後、ターゲットデータベースのビュー、ストアドプロシージャ、または関数を呼び出す場合は、INVOKERに読み取りおよび書き込み権限を付与する必要があります。

移行タイプ

DTS はフルデータ移行と増分データ移行に対応しています。 詳細については、「Terms」をご参照ください。
説明 PolarDB for MySQLクラスター間でデータを移行する場合、サポートされているすべての移行タイプを選択して、サービスの継続性を確保できます。

課金

移行タイプタスク設定料金インターネットトラフィック料金
スキーマ移行とフルデータ移行無料です。 インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。
増分データ移行有料。 詳細については、「課金の概要」をご参照ください。

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

操作タイプSQL文
DMLINSERT、UPDATE、DELETE、および REPLACE
DDL
  • ALTER TABLEとALTER VIEW
  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、およびCREATE VIEW
  • ドロップインデックスとドロップテーブル
  • RENAMEテーブル
  • TRUNCATE TABLE

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

データベース必要な権限
PolarDB for MySQL移行するオブジェクトの読み取り権限
自己管理型 MySQL データベース移行するオブジェクトの読み取りおよび書き込み権限

データベースアカウントの作成と権限付与の方法の詳細については、「データベースアカウントの作成」および「自己管理型MySQLデータベースのアカウントの作成とバイナリログの設定」をご参照ください。

手順

  1. にログインします。 DTSコンソール
    説明 Data Management (DMS) コンソールにリダイレクトされている場合は、右下隅にあるoldアイコンをクリックして、以前のバージョンのDTSコンソールに移動します。
  2. 左側のナビゲーションウィンドウで、[データ移行] をクリックします。
  3. [移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。
  4. ページの右上隅にある [移行タスクの作成] をクリックします。
  5. ソースデータベースとターゲットデータベースを設定します。
    Configure the source and destination databases
    セクションパラメーター説明
    N/Aタスク名タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。
    移行元データベースインスタンスタイプ[PolarDB] を選択します。
    インスタンスリージョンソースPolarDBクラスターが存在するリージョンを選択します。
    PolarDBインスタンスIDソースPolarDBクラスターのIDを選択します。
    データベースアカウントソースPolarDBクラスターのデータベースアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
    データベースパスワードデータベースアカウントのパスワードを入力します。
    説明 ソースデータベースのパラメーターを指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、指定したパラメーターが有効かどうかを確認します。 指定されたパラメーターが有効な場合、Passedメッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 チェック結果に基づいてソースデータベースのパラメーターを変更します。
    ターゲットデータベースインスタンスタイプソースデータベースのデプロイに基づいてインスタンスタイプを選択します。 この例では、[ECSインスタンスのユーザー作成データベース] を選択します。
    説明 他のインスタンスタイプを選択した場合、ソースデータベースのネットワーク環境をデプロイする必要があります。 詳細については、「準備の概要」をご参照ください。
    インスタンスリージョンECS インスタンスが存在するリージョンをクリックします。
    ECS インスタンス ID自己管理型MySQLデータベースに接続されているECSインスタンスのIDを選択します。
    データベースエンジン[MySQL] を選択します。
    ポート番号自己管理型MySQLデータベースのサービスポート番号を入力します。 この例では、3306 を入力します。
    データベースアカウント自己管理型MySQLデータベースのアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
    データベースパスワードデータベースアカウントのパスワードを入力します。
    説明 ターゲットデータベースパラメーターを指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、指定したパラメーターが有効かどうかを確認します。 指定されたパラメーターが有効な場合、Passedメッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 チェック結果に基づいて、ターゲットデータベースのパラメーターを変更します。
    暗号化[暗号化なし] または[SSL 暗号化] を選択します。 この例では、[暗号化なし] を選択します。
  6. ページの右下隅にある [ホワイトリストと次への設定] をクリックします。
    説明 DTSは、DTSサーバーのCIDRブロックをソースPolarDB for MySQLクラスターのホワイトリストとターゲットECSインスタンスのインバウンドルールに追加します。 これにより、DTSサーバーがソースクラスターとターゲットインスタンスに接続できるようになります。
  7. 移行タイプと移行するオブジェクトを選択します。
    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データのみが移行されます。
      説明 [いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
  8. ページの右下隅にある [事前チェック] をクリックします。
    説明
    • データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるInfo iconアイコンをクリックして詳細を表示できます。
      • 原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。
      • 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
  9. タスクが事前チェックに合格したら、[次へ] をクリックします。
  10. [設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。
  11. [購入と開始] をクリックして、データ移行タスクを開始します。
    • スキーマ移行とフルデータ移行

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

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

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

      重要 データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードを移行先クラスターに切り替える前にタスクを停止できます。
      1. 増分データ移行移行タスクが遅延しませんが移行タスクのプログレスバーに表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。
      2. 増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。 Stop an incremental data migration task