このトピックでは、データ伝送サービス (DTS) を使用して、PolarDB-X 1.0 インスタンスから PolarDB-X 2.0 インスタンスにデータを移行する方法について説明します。
前提条件
注意事項
スキーマ移行中、DTS はソースデータベースから宛先データベースに外部キーを移行します。
完全データ移行および増分データ移行中、DTS はセッションレベルで外部キーの制約チェックとカスケード操作を一時的に無効にします。データ移行中にソースデータベースでカスケード更新および削除操作を実行すると、データの不整合が発生する可能性があります。
ソースデータベースの制限
移行するテーブルの場合:
PRIMARY KEY または UNIQUE 制約が必要です。また、すべてのフィールドは一意である必要があります。そうでない場合、宛先データベースに重複したデータレコードが含まれる可能性があります。DTS は、UNIQUE 制約のみを持つテーブルのスキーマ移行をサポートしていません。そのため、移行するテーブルに PRIMARY KEY 制約を作成してください。
移行対象のオブジェクトとしてテーブルを選択し、宛先データベースでテーブルを編集(テーブル名や列名の変更など)する必要がある場合は、1 つのデータ移行タスクで最大 1,000 個のテーブルを移行できます。
1,000 個を超えるテーブルを移行するタスクを実行すると、リクエストエラーが発生します。この場合、移行するテーブルを分割し、複数のタスクを構成してテーブルを移行するか、データベース全体を移行するタスクを構成します。
PolarDB-X 1.0 インスタンスにアタッチされている RDS MySQL インスタンスは、バイナリログについて次の要件を満たしている必要があります。
バイナリロギング機能が有効になっています。 binlog_row_image パラメーターは full に設定されています。詳細については、「インスタンスのパラメーターを表示する」をご参照ください。そうでない場合、事前チェック中にエラーメッセージが返され、データ移行タスクを開始できません。
増分データ移行のみを実行する場合
ソースデータベースのバイナリログは 24 時間以上保存する必要があります。
完全データと増分データの移行タスクの場合、ソースデータベースのバイナリログは少なくとも 7 日間保存する必要があります。そうでない場合、DTS はバイナリログを取得できず、タスクが失敗する可能性があります。
例外的な状況では、データの不整合または損失が発生する可能性があります。
完全データ移行が完了したら、保持期間を 24 時間以上に設定できます。上記の要件に基づいてバイナリログの保持期間を設定してください。そうでない場合、DTS のサービスレベル契約 (SLA) はサービスの信頼性またはパフォーマンスを保証しません。
ソースデータベースで実行される操作の制限:
データ移行中に PolarDB-X 1.0 インスタンスのネットワークタイプを切り替える場合は、切り替えが成功した後に移行に関するネットワーク接続情報を調整します。
データ移行タスクの実行中は、ソースインスタンスの容量のスケーリング、アクセス頻度の高いテーブルの移行、シャードの変更、DDL 操作の実行を行わないでください。そうしないと、データ移行タスクが失敗するか、データの不整合が発生します。
完全データ移行のみを実行する場合は、データ移行中にソースデータベースにデータを書き込まないでください。そうしないと、ソースデータベースと宛先データベースの間でデータの不整合が発生します。データの整合性を確保するために、スキーマ移行、完全データ移行、および増分データ移行を選択することをお勧めします。
ソース PolarDB-X 1.0 インスタンスのバージョンは 5.2 以降である必要があります。
考慮事項
PolarDB-X 1.0 インスタンスのストレージタイプは、ApsaraDB RDS for MySQL (カスタムインスタンスと購入済みインスタンスを含む) である必要があります。PolarDB for MySQL はストレージタイプとして使用できません。
DTS が PolarDB-X 1.0 インスタンスからデータを移行する場合、データはアタッチされた ApsaraDB RDS for MySQL インスタンスに分散されます。DTS は、各 ApsaraDB RDS for MySQL インスタンスに対してサブタスクを実行します。 パフォーマンスモニタリング ページでサブタスクの状態を確認できます。
DTS は、ソース PolarDB-X 1.0 インスタンスの XA トランザクションの継続性に基づいて、増分データ移行タスクのデータ整合性を確保できます。増分データ収集モジュールのディザスタリカバリシナリオなど、XA トランザクションの継続性が破損した場合、コミットされていない XA トランザクションが失われ、データの不整合が発生する可能性があります。
データを移行する前に、データ移行がソースデータベースと宛先データベースのパフォーマンスに与える影響を評価します。オフピーク時にデータを移行することをお勧めします。完全データ移行中、DTS はソースデータベースと宛先データベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。
完全データ移行中、同時 INSERT 操作によって宛先データベースのテーブルに断片化が発生します。完全データ移行が完了すると、宛先データベースの使用済みテーブルスペースのサイズはソースデータベースのサイズよりも大きくなります。
FLOAT または DOUBLE データタイプの列の精度の設定がビジネス要件を満たしていることを確認する必要があります。DTS は、
ROUND(COLUMN,PRECISION)関数を使用して、FLOAT または DOUBLE データタイプの列から値を取得します。精度を指定しない場合、DTS は FLOAT データタイプの精度を 38 桁、DOUBLE データタイプの精度を 308 桁に設定します。DTS は、過去 7 日間に失敗したデータ移行タスクの再開を試みます。ワークロードを宛先データベースに切り替える前に、データ移行タスクを停止または解放します。また、
revoke文を実行して、DTS が宛先データベースにアクセスするために使用するアカウントから書き込み権限を取り消すこともできます。そうしないと、データ移行タスクが再開された後、ソースデータベースのデータによって宛先データベースのデータが上書きされます。インスタンスの実行に失敗した場合、DTS テクニカルサポート担当者は 8 時間以内にインスタンスの復元を試みます。復元プロセス中に、インスタンスが再起動されたり、パラメーターが調整されたりする可能性があります。
説明パラメーターが調整されると、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。 変更される可能性のあるパラメーターには、「インスタンスパラメーターの変更」のパラメーターが含まれますが、これらに限定されません。
課金
移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
スキーマ移行と完全データ移行 | 無料。 | ターゲットデータベースの アクセス方法 パラメーターが パブリック IP アドレス に設定されている場合、インターネットトラフィックに対して課金されます。詳細については、「課金概要」をご参照ください。 |
増分データ移行 | 課金されます。詳細については、「課金概要」をご参照ください。 |
移行タイプ
スキーマ移行
DTS は、選択したオブジェクトのスキーマをソースデータベースから宛先データベースに移行します。
完全データ移行
DTS は、必要なオブジェクトの履歴データをソースデータベースから宛先データベースに移行します。
増分データ移行
完全データ移行が完了すると、DTS はソースデータベースから宛先データベースに増分データを移行します。増分データ移行により、データ移行中にセルフマネージド アプリケーションのサービスを中断することなく、データをスムーズに移行できます。
増分データ移行中に移行できる SQL 操作
操作タイプ | SQL 文 |
DML | INSERT、UPDATE、および DELETE |
データベースアカウントに必要な権限
データベース | スキーマ移行 | 完全データ移行 | 増分データ移行 | アカウントの作成と承認方法 |
PolarDB-X 1.0 インスタンス | SELECT 権限 | SELECT 権限 | 移行するオブジェクトに対する SELECT 権限、REPLICATION SLAVE 権限、および REPLICATION CLIENT 権限。DTS はこれらの権限をデータベースアカウントに自動的に付与します。 | |
PolarDB-X 2.0 インスタンス | 読み取り/書き込み権限 | |||
手順
次のいずれかの方法を使用してデータ移行ページに移動し、データ移行インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データの移行 をクリックします。
ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。
DMS コンソール
説明実際の手順は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、ポインターを の上に移動します。
[データ移行タスク] の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースと宛先データベースを構成します。次の表にパラメーターを示します。
セクション
パラメーター
説明
該当なし
タスク名
DTS タスクの名前。DTS はタスク名を自動的に生成します。タスクを簡単に識別できるわかりやすい名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。
ソースデータベース
データベースタイプ
[PolarDB-X 1.0] を選択します。
アクセス方法
[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
ソース PolarDB-X 1.0 インスタンスが存在するリージョンを選択します。
[Alibaba Cloud アカウント間でデータを複製する]
この例では、データは同じ Alibaba Cloud アカウント内で移行されます。 [いいえ] を選択します。
[インスタンス ID]
ソース PolarDB-X 1.0 インスタンスの ID を選択します。
データベースアカウント
ソース PolarDB-X 1.0 インスタンスのデータベースアカウントを入力します。
データベースパスワード
データベースへのアクセスに使用するパスワード。
宛先データベース
データベースタイプ
[PolarDB-X 2.0] を選択します。
アクセス方法
[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
宛先 PolarDB-X 2.0 インスタンスが存在するリージョンを選択します。
[インスタンス ID]
宛先 PolarDB-X 2.0 インスタンスの ID を選択します。
データベースアカウント
宛先 PolarDB-X 2.0 インスタンスのデータベースアカウントを入力します。
データベースパスワード
データベースへのアクセスに使用するパスワード。
ページの下部にある、[接続テストと続行] をクリックします。
説明DTS サーバーの CIDR ブロックをソースデータベースと宛先データベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できるようにしてください。詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。
移行するオブジェクトを構成します。
オブジェクト設定 ページで、移行するオブジェクトを構成します。
パラメーター
説明
同期タイプ
完全データ移行のみを実行するには、[スキーマ移行] と [完全データ移行] を選択します。
データ移行中のサービスの継続性を確保するには、[スキーマ移行]、[完全データ移行]、および [増分データ移行] を選択します。
説明[スキーマ移行] を選択しない場合は、宛先データベースにデータを受信するためのデータベースとテーブルが作成され、[選択済みオブジェクト] でオブジェクト名マッピング機能が有効になっていることを確認してください。
[増分データ移行] を選択しない場合は、データ移行中にソースデータベースにデータを書き込まないことをお勧めします。これにより、ソースデータベースと宛先データベースの間のデータ整合性が確保されます。
競合テーブルの処理モード
エラーの事前チェックと報告: 宛先データベースにソースデータベースのテーブルと同じ名前を使用するテーブルが含まれているかどうかを確認します。ソースデータベースと宛先データベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格です。それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。
説明ソースデータベースと宛先データベースに同じ名前のテーブルが含まれており、宛先データベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、宛先データベースに移行されるテーブルの名前を変更できます。詳細については、「オブジェクト名をマッピングする」をご参照ください。
エラーを無視して続行: ソースデータベースと宛先データベースの同じテーブル名の事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが以下の潜在的なリスクにさらされる可能性があります。
ソースデータベースと宛先データベースのスキーマが同じで、データレコードのプライマリキーが宛先データベースの既存のデータレコードと同じである場合、次のシナリオが発生する可能性があります。
完全データ移行中、DTS はデータレコードを宛先データベースに移行しません。宛先データベースの既存のデータレコードは保持されます。
増分データ移行中、DTS はデータレコードを宛先データベースに移行します。宛先データベースの既存のデータレコードは上書きされます。
ソースデータベースと宛先データベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。注意して進めてください。
宛先インスタンスでのオブジェクト名の大文字化
宛先インスタンスのデータベース名、テーブル名、および列名の大文字と小文字の区別。デフォルトでは、[DTS デフォルトポリシー] が選択されています。他のオプションを選択して、オブジェクト名の大文字と小文字の区別がソースデータベースまたは宛先データベースと一致するようにすることができます。詳細については、「宛先インスタンスのオブジェクト名の大文字と小文字の区別を指定する」をご参照ください。
ソースオブジェクト
ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。
アイコンをクリックして、選択中のオブジェクト セクションにオブジェクトを追加します。説明移行対象のオブジェクトとしてテーブルを選択することをお勧めします。移行対象のオブジェクトとしてデータベース全体を選択した場合、DTS はソースデータベースでテーブルを作成または削除するための変更を宛先データベースに移行しません。
[選択済みオブジェクト]
宛先インスタンスに移行するオブジェクトの名前を変更するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。詳細については、「オブジェクト名をマッピングする」トピックの 単一オブジェクトの名前をマッピングする セクションをご参照ください。
複数のオブジェクトの名前を一度に変更するには、選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。詳細については、「オブジェクト名をマッピングする」トピックの 一度に複数のオブジェクト名をマッピングする セクションをご参照ください。
説明オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトが移行に失敗する可能性があります。
次へ:詳細設定 をクリックして、詳細設定を構成します。
構成
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、専用クラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。データ移行タスクの安定性を向上させるには、専用クラスターを購入します。詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
接続失敗時の再試行時間の範囲。データ移行タスクの開始後にソースデータベースまたは宛先データベースに接続できない場合、DTS は再試行時間の範囲内で直ちに接続を再試行します。有効値: 10 ~ 1,440。単位: 分。デフォルト値: 720。このパラメーターを 30 より大きい値に設定することをお勧めします。指定された再試行時間の範囲内で DTS がソースデータベースと宛先データベースに再接続された場合、DTS はデータ移行タスクを再開します。それ以外の場合、データ移行タスクは失敗します。
説明同じソースデータベースまたは宛先データベースを共有する複数のデータ移行タスクに異なる再試行時間の範囲を指定した場合、後で指定した値が優先されます。
DTS が接続を再試行すると、DTS インスタンスの料金が発生します。ビジネス要件に基づいて再試行時間の範囲を指定することをお勧めします。また、ソースデータベースと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間の範囲。たとえば、データ移行タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS は再試行時間の範囲内で直ちに操作を再試行します。有効値: 1 ~ 1440。単位: 分。デフォルト値: 10。このパラメーターを 10 より大きい値に設定することをお勧めします。指定された再試行時間の範囲内で失敗した操作が正常に実行された場合、DTS はデータ移行タスクを再開します。それ以外の場合、データ移行タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値よりも小さくなければなりません。
完全移行率を制限するかどうか
完全データ移行のスロットリングを有効にするかどうかを指定します。完全データ移行中、DTS はソースデータベースと宛先データベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。ビジネス要件に基づいて、完全データ移行のスロットリングを有効にすることができます。スロットリングを構成するには、1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。
説明移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ、このパラメーターを構成できます。
増分移行率を制限するかどうか
増分データ移行のスロットリングを有効にするかどうかを指定します。スロットリングを構成するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを構成する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。
説明移行タイプ パラメーターで 増分データ移行 を選択した場合にのみ、このパラメーターを構成できます。
環境タグ
データ同期インスタンスを識別するために使用される環境タグ。ビジネス要件に基づいて環境タグを選択できます。この例では、環境タグは選択されていません。
ETL の設定
抽出、変換、ロード (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効値:
[はい]: ETL 機能を構成します。コードエディターにデータ処理文を入力できます。詳細については、「データ移行またはデータ同期タスクで ETL を構成する」をご参照ください。
[いいえ]: ETL 機能を構成しません。
監視アラート
データ移行タスクのアラートを構成するかどうかを指定します。タスクが失敗した場合、または移行レイテンシが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。有効値:
[いいえ]: アラートを構成しません。
[はい]: アラートを構成します。この場合、アラートしきい値と アラート通知設定 も構成する必要があります。詳細については、「モニタリングとアラートの構成」トピックの DTS タスクの作成時にモニタリングとアラートを構成する セクションをご参照ください。
タスク設定を保存し、事前チェックを実行します。
関連する API 操作を呼び出して DTS タスクを構成するときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック の上にポインターを移動し、OpenAPI パラメーターのプレビュー をクリックします。
パラメーターを表示する必要がない場合、またはすでに表示している場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ移行タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後にのみ、データ移行タスクを開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析し、問題をトラブルシューティングします。その後、事前チェックを再度実行します。
事前チェック中に項目のアラートがトリガーされた場合:
アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。その後、事前チェックを再度実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再チェック] をクリックして、事前チェックを再度実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
インスタンスを購入します。
[成功率] が [100%] になるまで待ちます。その後、[次へ: インスタンスの購入] をクリックします。
[インスタンスを購入] ページで、データ移行インスタンスのインスタンスクラス パラメーターを構成します。次の表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
[リソースグループ]
データ移行インスタンスが属するリソースグループ。デフォルト値: [デフォルトのリソースグループ]。詳細については、「Resource Management とは」をご参照ください。
インスタンスクラス
DTS は、移行速度が異なるインスタンスクラスを提供します。ビジネスシナリオに基づいてインスタンスクラスを選択できます。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。
[データ伝送サービス(従量課金制)サービス規約] を確認し、チェックボックスを選択して同意します。
[購入して開始] をクリックします。表示されるメッセージで、 をクリックします。
[データ移行] ページでタスクの進捗状況を確認できます。
説明データ移行タスクを増分データの移行に使用できない場合、タスクは自動的に停止します。 [完了] が [ステータス] セクションに表示されます。
データ移行タスクを増分データの移行に使用できる場合、タスクは自動的に停止しません。増分データ移行タスクは停止または完了しません。 [実行中] が [ステータス] セクションに表示されます。