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