このトピックでは、data Transmission Service (DTS) を使用して、ApsaraDB RDS for MariaDBインスタンスからApsaraDB RDS for MySQLインスタンスにデータを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行に対応しています。 データ移行タスクを設定するときに、サポートされているすべての移行タイプを選択して、サービスの継続性を確保できます。
前提条件
ApsaraDB RDS for MySQL インスタンスが作成されています。 詳細については、以下をご参照ください。 ApsaraDB RDS for MySQLインスタンスの作成注意事項
- DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。
- 移行元データベースで移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
- データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 ワークロードをターゲットインスタンスに切り替える前に、データ移行タスクを停止またはリリースします。 それ以外の場合、タスクの再開後、ソースインスタンスのデータはターゲットインスタンスのデータを上書きします。
課金ルール
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
スキーマ移行とフルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
移行タイプ
- スキーマの移行
DTSは、必要なオブジェクトのスキーマをターゲットデータベースに移行します。 DTSは、テーブル、ビュー、トリガー、ストアドプロシージャ、関数のタイプのオブジェクトのスキーマ移行をサポートしています。 イベントのスキーマ移行はサポートされません。
説明- スキーマ移行中、ビュー、ストアドプロシージャ、関数の SECURITY 属性値は DEFINER から INVOKER に変更されます。
- ユーザー情報は移行されません。 ターゲットデータベースのビュー、ストアドプロシージャ、または関数を呼び出すには、INVOKERに読み取りおよび書き込み権限を付与する必要があります。
- フルデータ移行 DTSは、必要なオブジェクトの履歴データをターゲットデータベースに移行します。説明
- 完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全データ移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。
- データ移行を成功させるために、フルデータ移行中はソースデータベースでDDL操作を実行しないことをお勧めします。
- 増分データ移行
完全データ移行が完了すると、DTSはソースデータベースからバイナリログファイルを取得し、増分データをターゲットデータベースにリアルタイムで移行します。
増分データ移行中に同期できる SQL 操作
操作タイプ | SQL文 |
DML | INSERT、UPDATE、DELETE、および REPLACE |
DDL |
|
データベースアカウントに必要な権限
データベース | スキーマ移行 | 完全なデータ移行 | 増分データ移行 |
ApsaraDB RDS for MariaDBインスタンス | SELECT 権限 | SELECT 権限 | REPLICATION SLAVE、REPLICATION CLIENT、SHOW VIEW、およびSELECT権限 |
ApsaraDB RDS for MySQL インスタンス | 読み書き権限 | 読み書き権限 | 読み書き権限 |
データベースアカウントを作成し、そのアカウントに権限を付与する方法の詳細については、以下のトピックを参照してください。
- ApsaraDB RDS for MariaDBインスタンス:ApsaraDB RDS for MariaDBインスタンスにアカウントを作成します。
- ApsaraDB RDS for MySQLインスタンス:ApsaraDB RDS for MySQLインスタンスにアカウントを作成し、 ApsaraDB RDS for MySQLインスタンスの標準アカウントの権限を変更します。
手順
- にログインします。 DTSコンソール。 説明 Data Management (DMS) コンソールにリダイレクトされている場合は、右下隅にある
- 左側のナビゲーションウィンドウで、[データ移行] をクリックします。
- [移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。
- ページの右上隅にある [移行タスクの作成] をクリックします。
- ソースデータベースとターゲットデータベースを設定します。
セクション パラメーター 説明 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暗号化を有効にする必要があります。 詳細については、以下をご参照ください。 ApsaraDB RDS for MySQLインスタンスのSSL暗号化の設定 説明 Encryptionパラメーターは、中国本土および中国 (香港) リージョンのリージョンでのみ使用できます。 - ページの右下隅にある [ホワイトリストと次への設定] をクリックします。 警告 DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
- 移行タイプと移行するオブジェクトを選択します。
設定 説明 移行タイプの選択 - フルデータ移行のみを実行するには、[スキーマ移行] と [フルデータ移行] を選択します。
- データ移行中のサービスの継続性を確保するには、[スキーマ移行] 、[フルデータ移行] 、および [増分データ移行] を選択します。
重要 増分データ移行が選択されていない場合、完全データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。移行するオブジェクトを選択します。 [使用可能] セクションから1つ以上のオブジェクトを選択し、
アイコンをクリックして、オブジェクトを [選択済み] セクションに追加します。
重要- 移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。
- 既定では、オブジェクトがターゲットデータベースに移行された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
- オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。
オブジェクトの名前を変更するかどうかを指定する オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。 ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定 既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。 説明 DTSがソースデータベースとターゲットデータベースへの再接続を試みる時間範囲内で、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースデータベースとターゲットデータベースがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。DMSがソーステーブルに対してオンラインDDL操作を実行するときに、一時テーブルをターゲットデータベースにコピーするかどうかを指定します。 DMSを使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルを移行するかどうかを指定できます。 有効な値: - はい: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行します。 説明 オンラインDDL操作で大量のデータが生成される場合、データ移行タスクが完了するまでに長時間かかることがあります。
- No: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行しません。 移行元データベースの元のDDLデータのみが移行されます。 説明 [いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
- ページの右下隅にある [事前チェック] をクリックします。 説明
- データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
- タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある
アイコンをクリックして詳細を表示できます。
- 原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。
- 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
- タスクが事前チェックに合格したら、[次へ] をクリックします。
- [設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。
- [購入と開始] をクリックして、データ移行タスクを開始します。
データ移行タスクの停止
- フルデータ移行
フルデータ移行中にタスクを手動で停止しないでください。 そうしないと、システムはすべてのデータを移行できません。 移行タスクが自動的に終了するまで待ちます。
- 増分データ移行
増分データ移行中、タスクは自動的に終了しません。 移行タスクを手動で停止する必要があります。
- タスクの進行状況バーに [増分データ移行] と [移行タスクは遅延しません] が表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 場合によっては、進行状況バーに増分データ移行の遅延時間が表示されます。
- 増分データ移行のステータスが移行タスクが遅延なしに変更された後、移行タスクを手動で停止します。