Data Transmission Service (DTS) は、ApsaraDB RDS for MariaDB インスタンスから ApsaraDB RDS for MySQL インスタンスへのデータ移行をサポートします。スキーマ移行、完全なデータ移行、増分データ移行を組み合わせて使用することで、アプリケーションのダウンタイムを最小限に抑えながらデータベースを移行できます。
前提条件
ApsaraDB RDS for MySQL インスタンスが作成済みであること。詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
ターゲットの ApsaraDB RDS for MySQL インスタンスのストレージ容量が、ソースデータベースの使用容量よりも大きいことを確認してください。
注意事項
-
完全なデータ移行中、DTS はソースデータベースとターゲットデータベースの読み取り/書き込みリソースを消費するため、負荷が増加します。データベースのパフォーマンスが低い、仕様が低い、またはワークロードが高い場合 (たとえば、ソースデータベースに低速な SQL クエリやプライマリキーのないテーブルが多数ある場合や、ターゲットデータベースでデッドロックが発生する場合など)、負荷の増加によってデータベースに負担がかかり、サービスが中断する可能性さえあります。データ移行は、両方のデータベースの CPU 使用率が 30% 未満であるなど、オフピーク時に実行してください。
-
ソーステーブルにプライマリキーまたは一意制約がなく、一意でないデータが含まれている場合、ターゲットデータベースに重複データが作成される可能性があります。
-
データ移行タスクが失敗した場合、DTS は自動的にタスクを再開します。サービスを宛先インスタンスに切り替える前に、移行タスクを停止またはリリースして、ソースデータベースのデータで宛先インスタンスのデータが上書きされるのを防ぐ必要があります。
課金
|
移行タイプ |
タスク構成料金 |
インターネットトラフィック料金 |
|
スキーマ移行と完全なデータ移行 |
無料です。 |
DTS は、ターゲットデータベースの アクセス方法 が パブリック IP アドレス に設定されている場合にインターネットトラフィック料金を請求します。課金概要をご参照ください。 |
|
増分データ移行 |
有料です。課金概要をご参照ください。 |
移行タイプ
-
スキーマ移行
DTS は、選択したオブジェクトのスキーマをターゲットデータベースに移行します。スキーマ移行は、テーブル、ビュー、トリガー、ストアドプロシージャ、および関数でサポートされていますが、イベントではサポートされていません。
説明-
スキーマ移行中、DTS はビュー、ストアドプロシージャ、および関数の `DEFINER` を `INVOKER` に変更します。
-
DTS はユーザー情報を移行しないため、ターゲットデータベースでこれらのオブジェクトを呼び出すには、呼び出し元に必要な読み取りおよび書き込み権限を付与してください。
-
-
完全なデータ移行
DTS は、選択したオブジェクトから既存のすべてのデータをターゲットデータベースに移行します。
説明-
完全なデータ移行中、同時 `INSERT` 操作により、ターゲットデータベースでテーブルの断片化が発生する可能性があります。その結果、移行後のターゲットデータベースのテーブルスペースがソースデータベースよりも大きくなることがあります。
-
移行を確実に成功させるために、完全なデータ移行中はソースデータベースで DDL 操作を実行しないでください。
-
-
増分データ移行
完全なデータ移行の後、DTS はソースデータベースの binlog を読み取り、その後のデータ変更をリアルタイムでターゲットデータベースに移行します。
増分移行でサポートされる SQL 操作
|
操作タイプ |
SQL ステートメント |
|
DML |
INSERT、UPDATE、DELETE、REPLACE |
|
DDL |
|
データベースアカウントの権限
|
データベース |
スキーマ移行 |
完全なデータ移行 |
増分データ移行 |
|
ApsaraDB RDS for MariaDB インスタンス |
|
|
|
|
ApsaraDB RDS for MySQL インスタンス |
読み取りおよび書き込み権限 |
読み取りおよび書き込み権限 |
読み取りおよび書き込み権限 |
データベースアカウントを作成して権限を付与するには:
-
ApsaraDB RDS for MariaDB インスタンスについては、「アカウントの作成」をご参照ください。
-
ApsaraDB RDS for MySQL インスタンスについては、「アカウントの作成」および「アカウント権限の変更」をご参照ください。
操作手順
-
DTS コンソールにログインします。
説明Data Management (DMS) コンソールに自動的にリダイレクトされた場合は、右下隅の
アイコンをクリックし、
をクリックして従来の DTS コンソールに戻ることができます。 -
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
[移行タスク] ページの上部で、移行先クラスターのリージョンを選択します。
-
ページの右上隅にある 移行タスクの作成 をクリックします。
-
ソースデータベースとターゲットデータベースの接続設定を構成します。
セクション
パラメーター
説明
N/A
タスク名
DTS は自動的にタスク名を生成します。タスクを簡単に識別できるように、分かりやすい名前を使用してください。名前は一意である必要はありません。
ソースデータベース
インスタンスタイプ
RDS インスタンス を選択します。
インスタンスリージョン
ソース ApsaraDB RDS for MariaDB インスタンスが存在するリージョンを選択します。
RDS インスタンス ID
ソース ApsaraDB RDS for MariaDB インスタンスの ID を選択します。
データベースアカウント
ソース ApsaraDB RDS for MariaDB インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントの権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを入力します。
ソースデータベース情報を入力した後、データベースのパスワード の横にある 接続テスト をクリックして、入力した情報が正しいことを確認できます。
説明情報が正しく入力されると、合格 メッセージが表示されます。失敗 メッセージが表示された場合は、失敗 の後にある チェック をクリックし、プロンプトに従ってソースデータベースの情報を調整してください。
ターゲットデータベース
インスタンスタイプ
RDS インスタンス を選択します。
インスタンスリージョン
ターゲット ApsaraDB RDS for MySQL インスタンスが存在するリージョンを選択します。
RDS インスタンス ID
ターゲット ApsaraDB RDS for MySQL インスタンスの ID を選択します。
データベースアカウント
ターゲット ApsaraDB RDS for MySQL インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントの権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを入力します。
ターゲットデータベース情報を入力した後、データベースのパスワード の後にある 接続テスト をクリックして、入力した情報が正しいことを確認できます。
説明情報が正しく入力されると、合格 メッセージが表示されます。失敗 メッセージが表示された場合は、失敗 の後に チェック をクリックし、プロンプトに基づいてターゲットデータベースの情報を調整します。
接続方法
必要に応じて 非暗号化 または SSL 暗号化 を選択します。SSL 暗号化 を選択した場合は、まず ApsaraDB RDS for MySQL インスタンスで SSL 暗号化を有効にする必要があります。詳細については、「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 (従量課金) 利用規約] チェックボックスをオンにします。
-
購入して起動 をクリックして、移行タスクを開始します。
移行タスクの停止
切り替えによる影響を最小限に抑えるために、ロールバック計画を作成して、ターゲットデータベースからソースデータベースに増分データをリアルタイムでレプリケートできます。詳細については、「切り替え手順」をご参照ください。ビジネスの切り替えが伴わない場合は、データ移行タスクを停止できます。
- 完全なデータ移行
完全なデータ移行中は、タスクを手動で停止しないでください。停止すると、システムがすべてのデータを移行できなくなる可能性があります。移行タスクが自動的に終了するまでお待ちください。
- 増分データ移行
このタイプのタスクは自動的に停止しません。手動で停止する必要があります。
- タスクが 増分データ移行 ステージに入り、ステータスが 遅延なし になるまで待ちます。その後、ソースデータベースへの書き込みを数分間停止します。この間、増分データ移行 ステータスで遅延が報告される場合があります。
- 増分データ移行 ステータスが 遅延なし に戻るのを待ちます。リストでこれが確認されたら、タスクのチェックボックスをオンにし、下部のバッチ操作バーで [停止][終了] ボタンをクリックします。
次のステップ
移行が完了したら、セキュリティ上の理由から、ApsaraDB RDS for MariaDB と ApsaraDB RDS for MySQL の両方のインスタンスから移行に使用したデータベースアカウントを削除してください。これらのアカウントには読み取りおよび書き込み権限があります。