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

ApsaraDB RDS:Google Cloud SQL for MySQLインスタンスからApsaraDB RDS for MySQLインスタンスへのデータ移行

最終更新日:Jan 18, 2024

このトピックでは、Google Cloud SQL for MySQLインスタンスからApsaraDB RDS for MySQLインスタンスにデータを移行する方法について説明します。 このトピックでは、使用上の注意事項についても説明します。

前提条件

ソースと宛先

要件

参考情報

ソース

Google Cloud SQL for MySQLインスタンス

  • インスタンスにはインターネット経由でアクセスできます。 インスタンスのパブリックエンドポイントとポートが取得されます。

  • 特権アカウントが作成されます。

Google Cloud SQL for MySQLドキュメント

目的地

ApsaraDB RDS for MySQL インスタンス

  • RDSインスタンスが作成されました。

  • 特権アカウントが作成されます。

制限事項

  • スキーマ移行メソッドはイベントをサポートしていません。

  • Data Transmission Service (DTS) は、round(column,precision) 関数を呼び出して、MySQLデータベースの列にあるFLOATおよびDOUBLEデータ型の浮動小数点値を読み取ります。 値の精度が指定されていない場合、精度は、FLOATタイプの値の場合は38ビット、DOUBLEタイプの値の場合は308ビットです。 DTSによって移行されるFLOAT型の値とDOUBLE型の値の精度がビジネス要件を満たしているかどうかを確認する必要があります。

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

  • 増分データ移行を使用する場合、Google Cloud SQL for MySQLインスタンスのバイナリログを有効にする必要があります。

  • 増分データ移行を使用する場合は、ソースデータベースのbinlog_formatパラメーターをrowに設定する必要があります。

  • 増分データ移行が使用され、Google Cloud SQL for MySQLインスタンスがMySQL 5.6以降を実行する場合、インスタンスのbinlog_row_imageパラメーターをfullに設定する必要があります。

  • 増分データ移行が使用され、増分データ移行中にGoogle Cloud SQL for MySQLインスタンスでホスト間移行または再構築が実行されると、バイナリログファイルのIDが乱れ、移行された増分データが失われる可能性があります。

説明

Google Cloud SQL For MySQLインスタンスのパラメーターを変更する方法の詳細については、「Google Cloud SQL for MySQLドキュメント」をご参照ください。

使用上の注意

DTSは、7日以内に実行される異常な移行タスクを自動的に再開しようとします。 したがって、Google Cloud SQL for MySQLインスタンス上のデータは、ApsaraDB RDS for MySQLインスタンスに書き込まれたサービスデータを上書きする可能性があります。 移行タスクが完了したら、REVOKEステートメントを実行して、ApsaraDB RDS for MySQLインスタンスへのアクセスに使用されるDTSアカウントの書き込み権限を取り消す必要があります。

手順 (新しいDTSコンソールで)

  1. [データ移行タスク] ページに移動します。
    1. にログインします。 データ管理 (DMS) コンソール
    2. 上部のナビゲーションバーで、[DTS] をクリックします。
    3. 左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ移行] を選択します。
    説明
  2. [データ移行タスク] の横にあるドロップダウンリストから、データ移行インスタンスが存在するリージョンを選択します。
    説明 新しいDTSコンソールを使用する場合は、左上隅にデータ移行インスタンスが存在するリージョンを選択する必要があります。
  3. [タスクの作成] をクリックします。 表示されるページで、ソースインスタンスとターゲットインスタンスを設定します。

    警告

    ソースデータベースとターゲットデータベースを設定した後、ページの上部に表示される制限を読むことをお勧めします。 そうしないと、タスクが失敗したり、データの不一致が発生します。

    セクション

    パラメーター

    説明

    N/A

    タスク名

    タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    ソースデータベース

    既存のDMSデータベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを選択するかどうかを選択できます。

    • 既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。

    • 既存のインスタンスを選択しない場合は、データベースのパラメーターを手動で設定する必要があります。

    データベースタイプ

    ソースインスタンスの種類。 [MySQL] を選択します。

    アクセス方法

    ソースインスタンスのアクセス方法。 [パブリックIPアドレス] を選択します。

    インスタンスリージョン

    同期元インスタンスの ID。

    説明

    ソースインスタンスが存在するリージョンが見つからない場合は、インスタンスに最も近いリージョンを選択できます。

    ホスト名またはIPアドレス

    ソースインスタンスのエンドポイント。

    説明

    Google Cloud SQL for MySQL DBインスタンスの左側のナビゲーションページで、[接続] をクリックします。 [概要] タブの [ネットワーキング] セクションで、[パブリックIPアドレス] パラメーターの値を表示します。

    ポート

    ソースインスタンスのポート番号。 デフォルトのポート番号は、3306 です。

    データベースアカウント

    ソースインスタンスのデータベースアカウント。 アカウント権限の詳細については、「Amazon RDS For MySQLインスタンスからApsaraDB RDS for MySQLインスタンスへのデータ移行」をご参照ください。

    データベースパスワード

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

    宛先データベース

    既存のDMSデータベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを選択するかどうかを選択できます。

    • 既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。

    • 既存のインスタンスを選択しない場合は、データベースのパラメーターを手動で設定する必要があります。

    データベースタイプ

    移行先インスタンスの ID を設定します。 [MySQL] を選択します。

    アクセス方法

    ターゲットデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。

    インスタンスリージョン

    同期先インスタンスの ID。

    Alibaba Cloud アカウント間でデータを複製

    Alibaba Cloudアカウント間でデータを移行するかどうかを指定します。 この例では、× が選択されています。

    RDSインスタンスID

    ターゲットインスタンスの ID。

    データベースアカウント

    ターゲットインスタンスのデータベースアカウント。 アカウントの権限については、「Amazon RDS For MySQLインスタンスからApsaraDB RDS for MySQLインスタンスへのデータ移行」をご参照ください。

    データベースパスワード

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

    暗号化

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

  4. ページの下部で、[接続のテストと続行] をクリックします。
  5. 自己管理データベースにIPアドレスホワイトリストが設定されている場合は、DTSサーバーのCIDRブロックをIPアドレスホワイトリストに追加します。 次に、[テスト接続と続行] をクリックします。

    警告

    DTSサーバーのパブリックCIDRブロックが、データベースインスタンスのIPアドレスホワイトリストまたはECSインスタンスのセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、アカウントとパスワードのセキュリティの強化、公開されるポートの制限、API呼び出しの認証、IPアドレスホワイトリストまたはECSセキュリティグループルールの定期的なチェック、および不正なCIDRブロックの禁止、Express Connectを使用したデータベースのDTSへの接続、VPNゲートウェイ、またはSmart Access Gateway。

  6. 同期するオブジェクトと詳細設定を設定します。

    パラメーター

    説明

    移行タイプ

    • フルデータ移行のみを実行するには、[スキーマ移行][フルデータ移行] を選択します。

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

    説明

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

    競合テーブルの処理モード

    • 事前チェックエラーとレポートエラー: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。

      説明

      オブジェクト名マッピング機能を使用して、移行先データベースに移行するテーブルの名前を変更できます。 この機能は、ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていて、ターゲットデータベースのテーブルを削除または名前変更できない場合に使用できます。 詳細については、「マップオブジェクト名」をご参照ください。

    • エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。

      警告

      [エラーを無視して続行] を選択すると、データの不整合が発生し、ビジネスが次の潜在的なリスクにさらされる可能性があります。

      • ソースデータベースとターゲットデータベースのスキーマが同じである場合、DTSは、ターゲットデータベースのデータレコードと同じ主キー値を持つデータレコードを移行しません。

      • ソースデータベースとターゲットデータベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。 作業は慎重に行ってください。

    移行元データベースのトリガーを移行する方法

    ソースデータベースからトリガーを移行するために使用されるメソッド。 ビジネス要件に基づいて移行方法を選択できます。 移行するトリガーがない場合は、このパラメーターを設定する必要はありません。 詳細については、「ソースデータベースからのトリガーの同期または移行」をご参照ください。

    説明

    このパラメーターは、移行タイプとして スキーマ移行 を選択した場合にのみ設定できます。

    移行評価の有効化

    移行評価を有効にするかどうかを指定します。 移行評価の目的は、インデックスの長さ、ストアドプロシージャ、依存テーブルなど、ソースデータベースとターゲットデータベースのスキーマが要件を満たしているかどうかを確認することです。 ビジネス要件に基づいて、[はい] または [いいえ] を選択できます。

    説明
    • このパラメーターは、移行タイプとして スキーマ移行 を選択した場合にのみ設定できます。

    • [はい] を選択した場合、事前チェックに時間がかかる場合があります。 事前チェック中に 評価結果 を表示できます。 評価結果はプレチェック結果に影響しません。

    宛先インスタンスでのオブジェクト名の大文字化

    ターゲットインスタンスのデータベース名、テーブル名、および列名の大文字化。 デフォルトでは、DTSデフォルトポリシーが選択されています。 他のオプションを選択して、オブジェクト名の大文字化がソースまたはターゲットデータベースの大文字化と一致していることを確認できます。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字化の指定」をご参照ください。

    ソースオブジェクト

    ソースオブジェクト セクションから1つ以上のオブジェクトを選択します。 Rightwards arrowアイコンをクリックし、[選択済みオブジェクト] セクションにオブジェクトを追加します。

    説明

    移行するオブジェクトとして、列、テーブル、またはスキーマを選択できます。 移行するオブジェクトとしてテーブルまたは列を選択した場合、DTSは、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトを移行先データベースに移行しません。

    [選択済みオブジェクト]

    • 移行先インスタンスに移行するオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前のマッピング」をご参照ください。
    • 一度に複数のオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマップする」をご参照ください。
    説明
    • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。

    • データをフィルタリングするWHERE条件を指定するには、[選択済みオブジェクト] セクションでテーブルを右クリックします。 表示されるダイアログボックスで、条件を指定します。 詳細については、「SQL条件を使用したデータのフィルタリング」をご参照ください。

    • 特定のデータベースまたはテーブルで実行されたSQL操作を移行するには、[選択されたオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、移行するSQL操作を選択します。

  7. [次へ: 詳細設定] をクリックして詳細設定を構成します。

    • データ検証設定

      データ検証機能の使用方法の詳細については、「データ検証の有効化」をご参照ください。

    • 詳細設定

      パラメーター

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、DTSはタスクを共有クラスターにスケジュールします。 このパラメーターを設定する必要はありません。 指定された仕様の専用クラスターを購入して、データ移行タスクを実行できます。 詳細については、「DTS専用クラスターとは」をご参照ください。

      Set Alerts

      データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、移行の待ち時間が指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:

      • No: アラートを設定しません。

      • Yes: アラートを設定します。 [はい] を選択した場合、アラートしきい値とアラート連絡先も指定する必要があります。 詳細については、「モニタリングとアラートの設定」をご参照ください。

      移行元テーブルで生成された Online DDL ツールの一時テーブルを移行先データベースにコピーします。

      DMSまたはgh-ostツールを使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルのデータを移行するかどうかを指定できます。 有効な値:

      重要

      pt-online-schema-changeなどのツールを使用して、ソースデータベースでオンラインDDL操作を実行することはできません。 それ以外の場合、DTSタスクは失敗します。

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

        説明

        オンラインDDL操作で大量のデータが生成される場合、データ移行タスクが完了するまでに長時間かかることがあります。

      • いいえ、DMSオンラインDDLに適応: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行しません。 DMSを使用して実行された元のDDL操作のみが移行されます。

        説明

        [いいえ] [DMSオンラインDDLに適応] を選択した場合、ターゲットデータベースのテーブルがロックされる可能性があります。

      • No, Adapt to gh-ost: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行しません。 gh-ostツールを使用して実行された元のDDL操作のみが移行されます。 デフォルトまたはカスタムの正規表現を使用して、gh-ostツールのシャドウテーブルと不要なテーブルを除外できます。

        説明

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

      失敗した接続の再試行時間

      失敗した接続のリトライ時間範囲。 データ移行タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位: 分。 デフォルト値: 720 パラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
      説明
      • ソースまたはターゲットデータベースが同じである複数のデータ移行タスクに対して異なるリトライ時間範囲を設定した場合、設定された最短のリトライ時間範囲が優先されます。
      • DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      その他の問題の再試行時間範囲。 たとえば、データ移行タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSは再試行時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位: 分。 デフォルト値は 10 です。 パラメーターを10より大きい値に設定することを推奨します。 指定された再試行時間内に失敗した操作が正常に実行された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

      重要

      ソースデータベースとターゲットデータベースで他の問題が発生した場合の再試行までの待機時間パラメーターの値は、[失敗した接続の再試行時間] パラメーターの値よりも小さくする必要があります。

      完全なデータ移行のためのスロットリングを有効化

      完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 ビジネス要件に基づいて、フルデータ移行のスロットリングを有効にできます。 スロットリングを有効にするには、1 秒あたりのソースデータベースのクエリ率 QPS完全なデータ移行の BPS、および1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定する必要があります。 これは、宛先インスタンスのオフロードに役立ちます。

      説明

      このパラメーターは、移行タイプとして完全データ移行を選択した場合にのみ設定できます。移行タイプ

      完全なデータ移行のスロットリングを有効化

      ビジネス要件に基づいて、増分データ移行のスロットリングを有効にできます。 スロットリングを有効にするには、増分データ移行の RPS1 秒あたりの増分移行データ量 (MB) BPS パラメーターを設定する必要があります。 これは、宛先インスタンスのオフロードに役立ちます。

      説明

      このパラメーターは、移行タイプとして増分データ移行を選択した場合にのみ設定できます。移行タイプ

      環境タグ

      ビジネス要件に基づいて環境タグを選択できます。 この例では、このパラメーターを設定する必要はありません。

      ETLの設定

      抽出、変換、および読み込み (ETL) 機能を設定するかどうかを指定します。 詳細については、「ETLとは」をご参照ください。. 有効な値:

      順方向および逆方向タスクのハートビートテーブル sql を削除

      DTSインスタンスの実行中に、ハートビートテーブルのSQL操作をソースデータベースに書き込むかどうかを指定します。

      • Yes: ハートビートテーブルにSQL操作を書き込みません。 この場合、DTSインスタンスのレイテンシが表示され得る。

      • No: ハートビートテーブルにSQL操作を書き込みます。 この場合、ソースデータベースの物理バックアップやクローニングなどの特定の機能が影響を受ける可能性があります。

  8. ページの下部で、[次へ: タスク設定の保存と事前チェック] をクリックします。

    ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示できます。

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 エラーメッセージに基づいて問題をトラブルシューティングした後、事前チェックを再度実行できます。

    • 事前チェック中にアイテムに対してアラートがトリガーされた場合:

      • アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

  9. 成功率100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。

  10. [インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。 次の表にパラメーターを示します。

    セクション

    パラメーター

    説明

    新しいインスタンスクラス

    リソースグループ

    データ移行インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは」をご参照ください。

    インスタンスクラス

    DTSは、移行速度が異なるインスタンスクラスを提供します。 ビジネスシナリオに基づいてインスタンスクラスを選択できます。 詳細については、「データ移行インスタンスの仕様」をご参照ください。

  11. チェックボックスをオンにして、Data Transmission Service (Pay-as-you-go) Service Termsを読み、同意します。

  12. [購入と開始] をクリックして、データ移行タスクを開始します。 タスクリストでタスクの進行状況を確認できます。