Data Transmission Service (DTS) を使用すると、データ分析、機能テスト、その他のシナリオのために、PolarDB for MySQL から自己管理 MySQL データベースにデータを移行できます。
前提条件
増分データ移行では、ソースの PolarDB for MySQL クラスターでバイナリロギング (binlog) を有効にする必要があります。詳細については、「バイナリロギングの有効化」をご参照ください。
注意事項
-
完全なデータ移行中、DTS はソースデータベースとターゲットデータベースの読み取り/書き込みリソースを消費し、負荷が増加します。データベースのパフォーマンスが低い、仕様が低い、またはワークロードが高い場合 (たとえば、ソースデータベースに低速な SQL クエリやプライマリキーのないテーブルが多い場合、またはターゲットデータベースでデッドロックが発生する場合など)、負荷の増加によってデータベースに負担がかかったり、サービスが中断したりする可能性があります。データ移行は、両方のデータベースの CPU 使用率が 30% 未満であるなど、オフピーク時に実行してください。
- ソーステーブルにプライマリキー、一意性制約、または一意性を保証するフィールドの組み合わせがない場合、DTS はターゲットデータベースに重複データを生成する可能性があります。
- 完全なデータ移行では、同時 INSERT 操作が使用されるため、テーブルの断片化が発生します。移行後、ターゲットの表領域はソースよりも大きくなります。
- DTS は失敗したタスクを自動的に回復します。ワークロードをターゲットに切り替える前に、移行タスクを停止またはリリースして、タスクが再開されてターゲットデータが上書きされるのを防いでください。
- 完全なデータ移行のレートは調整できません。
制限事項
- DTS は、テーブル、ビュー、トリガー、ストアドプロシージャ、およびストアドファンクションのスキーマ移行をサポートしています。説明 スキーマ移行中、DTS はビュー、ストアドプロシージャ、または関数の
DEFINERをINVOKERに変更します。 - DTS はユーザー情報を移行しません。ターゲットでビュー、ストアドプロシージャ、または関数を呼び出すには、呼び出し元に読み取りおよび書き込み権限を付与してください。
移行タイプ
DTS は、スキーマ移行、完全なデータ移行、および増分データ移行をサポートしています。詳細については、「基本概念」をご参照ください。
3 つの移行タイプをすべて組み合わせることで、ダウンタイムのないスムーズなデータベース移行を実現できます。
課金
|
移行タイプ |
タスク構成料金 |
インターネットトラフィック料金 |
|
スキーマ移行と完全なデータ移行 |
無料です。 |
Alibaba Cloud からインターネット経由でデータを移行する場合にのみ料金が発生します。詳細については、「課金概要」をご参照ください。 |
|
増分データ移行 |
課金されます。詳細については、「課金概要」をご参照ください。 |
増分移行でサポートされる SQL 操作
|
操作タイプ |
SQL ステートメント |
|
DML |
INSERT、UPDATE、DELETE、REPLACE |
|
DDL |
|
データベースアカウントに必要な権限
| データベース | 必要な権限 |
| PolarDB for MySQL (ソース) | 移行対象オブジェクトに対する読み取り権限 |
| 自己管理 MySQL データベース | 移行対象オブジェクトに対する読み取りおよび書き込み権限 |
データベースアカウントの作成と権限付与の方法については、「PolarDB for MySQL のデータベースアカウントの作成」および「自己管理 MySQL データベースのデータベースアカウントの作成」をご参照ください。
操作手順
-
DTS コンソールにログインします。
説明Data Management (DMS) コンソールに自動的にリダイレクトされた場合は、右下隅の
アイコンをクリックし、
をクリックして従来の DTS コンソールに戻ることができます。 -
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
[移行タスク] ページの上部で、ターゲットクラスターのリージョンを選択します。
-
ページの右上隅にある 移行タスクの作成 をクリックします。
- ソースデータベースとターゲットデータベースを構成します。
セクション パラメーター 説明 N/A タスク名 DTS は自動的にタスク名を生成します。識別しやすいように、わかりやすい名前を指定してください。タスク名は一意である必要はありません。 ソースデータベース インスタンスタイプ PolarDB を選択します。 インスタンスリージョン ソースの PolarDB for MySQL クラスターのリージョンを選択します。 PolarDB インスタンス ID ソースの PolarDB for MySQL クラスターの ID を選択します。 データベースアカウント PolarDB for MySQL クラスターのデータベースアカウントを入力します。権限要件については、「データベースアカウントに必要な権限」をご参照ください。 データベースのパスワード データベースアカウントのパスワードを入力します。 説明 ソースデータベースを構成した後、接続テスト フィールドの横にある データベースのパスワード をクリックして設定を検証します。合格 メッセージが表示されると、接続が成功したことを確認できます。接続に失敗した場合は、失敗 メッセージが表示されます。チェック メッセージの横にある 失敗 をクリックし、プロンプトに従って設定を変更します。ターゲットデータベース インスタンスタイプ ターゲットデータベースのデプロイメント場所に基づいてインスタンスタイプを選択します。このトピックでは、例として [パブリック IP を持つ自己管理データベース: ECS インスタンス] を使用します。 説明 自己管理データベースが異なるインスタンスタイプを使用している場合は、追加の準備手順が必要です。詳細については、「準備の概要」をご参照ください。インスタンスリージョン ECS インスタンスが存在するリージョンを選択します。 ECS インスタンス ID 自己管理 MySQL データベースをホストする ECS インスタンスの ID を選択します。 データベースタイプ MySQL を選択します。 ポート番号 データベースサービスのポート番号を入力します。この例では、3306 を入力します。 データベースアカウント 自己管理 MySQL データベースのデータベースアカウントを入力します。権限要件については、「データベースアカウントに必要な権限」をご参照ください。 データベースのパスワード データベースアカウントのパスワードを入力します。 説明 ターゲットデータベースを構成した後、接続テスト フィールドの横にある データベースのパスワード をクリックして設定を検証します。合格 メッセージが表示されると、接続が成功したことを確認できます。接続に失敗した場合は、失敗 メッセージが表示されます。チェック メッセージの横にある 失敗 をクリックし、プロンプトに従って設定を変更します。暗号化 要件に応じて 非暗号化 または SSL 暗号化 を選択します。この例では、非暗号化 が選択されています。 - ページの右下隅にある [ホワイトリストを設定して次へ] をクリックします。
ソースまたはターゲットが ApsaraDB for MySQL や ApsaraDB for MongoDB などの Alibaba Cloud データベースインスタンスである場合、DTS は対応するリージョンのサーバーの IP アドレスをインスタンスのホワイトリストに自動的に追加します。ソースまたはターゲットが ECS インスタンス上の自己管理データベースである場合、DTS はその IP アドレスを ECS インスタンスのセキュリティルールに自動的に追加します。また、自己管理データベースが ECS インスタンスからのアクセスを制限していないことを確認する必要があります。データベースが複数の ECS インスタンスにまたがってデプロイされたクラスターである場合は、各 ECS インスタンスのセキュリティルールに DTS の IP アドレスを手動で追加する必要があります。ソースまたはターゲットがオンプレミスデータセンターまたは他のクラウド上のデータベースである場合は、対応するリージョンの DTS IP アドレスを手動で追加して、DTS サーバーからのアクセスを許可する必要があります。DTS サーバーの IP アドレスのリストについては、「DTS サーバーの IP アドレス」をご参照ください。
警告DTS サーバーのパブリック CIDR ブロックを自動または手動で追加すると、セキュリティリスクが生じる可能性があります。この製品を使用することにより、これらの潜在的なリスクを認識し、受け入れるものとします。強力なパスワードの使用、オープンポートの制限、内部 API 呼び出しの認証の使用、不要なネットワークセグメントの定期的な確認と制限、または Express Connect、VPN Gateway、Smart Access Gateway などのプライベートネットワーク経由での接続など、基本的なセキュリティ対策を講じる責任はお客様にあります。
-
移行タイプと移行対象オブジェクトを選択します。
パラメーター
説明
移行タイプ
-
完全移行のみを実行するには、スキーマ移行 と [完全なデータ移行] の両方を選択します。
-
ダウンタイムを最小限に抑えて移行を実行するには、スキーマ移行、[完全なデータ移行]、および [増分データ移行] を選択します。
説明[増分データ移行] を選択しない場合は、データ整合性を確保するために、移行中にソースデータベースに新しいデータを書き込まないでください。
移行オブジェクト
[利用可能] ボックスで、移行するオブジェクトをクリックし、
アイコンをクリックして 選択中のオブジェクト ボックスに移動します。説明-
データベース、テーブル、および列を移行オブジェクトとして選択できます。
-
デフォルトでは、ターゲットデータベースのオブジェクト名はソースデータベースと同じです。ターゲットデータベースでオブジェクトの名前を変更するには、オブジェクト名マッピング機能を使用します。詳細については、「オブジェクト名マッピング」をご参照ください。
-
オブジェクト名マッピング機能を使用すると、依存オブジェクトの移行に失敗する可能性があります。
マッピングされた名前の変更
ターゲットインスタンスで移行オブジェクトの名前を変更するには、オブジェクト名マッピング機能を使用します。詳細については、「オブジェクト名マッピング」をご参照ください。
ソースまたはターゲットデータベースへの接続失敗時の再試行時間
デフォルトでは、DTS がソースまたはターゲットデータベースに接続できない場合、720 分 (12 時間) 再試行します。再試行時間はカスタマイズできます。指定された時間内に DTS が再接続すると、移行タスクは自動的に再開されます。それ以外の場合、移行タスクは失敗します。
説明DTS が接続を再試行している間、タスクは課金されます。ビジネスニーズに基づいて再試行時間を設定するか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。
DMS によるソーステーブルのオンライン DDL 中に一時テーブルをターゲットにレプリケートする
Data Management (DMS) を使用してソースデータベースでオンライン DDL 操作を実行する場合、これらの操作によって生成された一時テーブルを移行するかどうかを選択します。
-
○: オンライン DDL 操作によって生成された一時テーブルからデータを移行します。
説明オンライン DDL 操作によって生成された一時テーブルに大量のデータが含まれている場合、移行タスクが遅延する可能性があります。
-
×: 一時テーブルからデータを移行しません。ソースデータベースからの元の DDL データのみが移行されます。
説明このオプションを選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
-
構成が完了したら、ページの右下隅にある [事前チェックと起動] をクリックします。
説明-
移行タスクが開始される前に、DTS は事前チェックを実行します。タスクは、事前チェックに合格した後にのみ開始できます。
-
事前チェックに失敗した場合は、失敗した項目の横にある
アイコンをクリックして詳細を表示します。-
プロンプトに従って問題を修正し、事前チェックを再度実行します。
-
警告項目を修正する必要がない場合は、無視 を選択し、[警告を無視して事前チェックを再実行] をクリックして事前チェックを再度実行できます。
-
-
-
タスクが事前チェックに合格したら、次へ をクリックします。
-
表示される [設定の確認] ダイアログボックスで、インスタンスクラス を選択し、[Data Transmission Service (従量課金) 利用規約] チェックボックスをオンにします。
-
購入して起動 をクリックして移行を開始します。
-
スキーマ移行 + 完全なデータ移行
タスクが自動的に完了するのを待ちます。手動で停止すると、データが不完全になる可能性があります。
-
スキーマ移行 + 完全なデータ移行 + 増分データ移行
移行タスクは自動的に停止しません。手動で停止する必要があります。
重要オフピーク時や、ビジネスをターゲットクラスターに切り替える準備ができたときなど、適切なタイミングでタスクを手動で停止してください。
-
移行タスクが 増分データ移行 フェーズに入り、ステータスが 遅延なし と表示されるまで待ちます。その後、数分間ソースデータベースへのデータ書き込みを停止します。この間、増分データ移行 のステータスに遅延が表示される場合があります。
-
増分データ移行 のステータスが再び 遅延なし と表示されるのを待ってから、移行タスクを手動で停止します。

-
-