PolarDBは、Alibaba Cloudによって開発された次世代のリレーショナルデータベースサービスです。 このサービスはMySQLデータベースエンジンと互換性があり、高可用性、使いやすさ、信頼性を備えています。 このトピックでは、data Transmission Service (DTS) を使用して、ユーザー作成MySQLデータベースからPolarDB for MySQLクラスターにデータを移行する方法について説明します。
前提条件
- ユーザーが作成した MySQL データベースのバージョンは、5.1、5.5、5.6、5.7、または 8.0 であること。
- ターゲットPolarDB for MySQLクラスターが作成されます。 詳細については、以下をご参照ください。 PolarDB MySQLクラスターの作成
- ソースMySQLデータベースがオンプレミスデータベースの場合、DTSサーバーのCIDRブロックがソースMySQLデータベースのIPホワイトリストに追加されます。 この設定により、DTSサーバーがソースMySQLデータベースにアクセスできるようになります。 詳細については、「DTSサーバーのCIDRブロックの追加」をご参照ください。
注意事項
DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。
- ソースデータベースにはPRIMARY KEYまたはUNIQUE制約が必要で、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
- DTSは
ROUND(COLUMN,PRECISION)関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の精度を38桁に設定し、DOUBLEデータ型の精度を308桁に設定します。 業務要件を満足する精度が設定されていることを確認する必要があります。 - データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 ワークロードを移行先クラスターに切り替える前に、データ移行タスクを停止またはリリースしてください。 そうしないと、タスクの再開後、ソースデータベースのデータがターゲットクラスターのデータを上書きします。
移行タイプ
課金ルール
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
スキーマ移行とフルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行中に同期できる SQL 操作
| 操作タイプ | SQL文 |
| DML | INSERT、UPDATE、DELETE、および REPLACE |
| DDL |
|
データベースアカウントに必要な権限
| データベース | スキーマ移行とフルデータ移行 | 増分データ移行 |
| ユーザーが作成した MySQL データベース | SELECT 権限 | REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、およびSELECT権限 |
| PolarDB for MySQL クラスター | 読み取り/書き込み権限 | 読み取り/書き込み権限 |
データベースアカウントの作成方法と権限付与方法については、以下のトピックを参照してください。
- 自己管理型MySQLデータベースのアカウントを作成し、バイナリログを設定する
- PolarDB for MySQLクラスターのデータベースアカウントの作成と管理
準備
自己管理型MySQLデータベースのアカウントを作成し、バイナリログを設定手順
- にログインします。 DTSコンソール。 説明 Data Management (DMS) コンソールにリダイレクトされている場合は、右下隅にある
アイコンをクリックして、以前のバージョンのDTSコンソールに移動します。 - 左側のナビゲーションウィンドウで、[データ移行] をクリックします。
- [移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。
- ページの右上隅にある [移行タスクの作成] をクリックします。
- データ移行タスクのソースデータベースとターゲットデータベースを設定します。

セクション パラメーター 説明 N/A タスク名 タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。 移行元データベース インスタンスタイプ ソースデータベースがデプロイされている場所に基づいてインスタンスタイプを選択します。 この例では、[パブリックIPアドレスを持つユーザー作成データベース] を選択します。 説明他のインスタンスタイプを選択した場合、自己管理データベースのネットワーク環境をデプロイする必要があります。 詳細については、「準備の概要」をご参照ください。
インスタンスリージョン インスタンスタイプが [オンプレミスデータベース] に設定されている場合、[インスタンスリージョン] を指定する必要はありません。 説明 ユーザーが作成したMySQLデータベースにホワイトリストが設定されている場合は、DTSサーバーのCIDRブロックをデータベースのホワイトリストに追加する必要があります。 [インスタンスリージョン] の横にある [DTS IP を取得する] をクリックして、DTS サーバーの CIDR ブロックを取得します。データベースエンジン [MySQL] を選択します。 Hostname or IP Address ユーザー作成の MySQL データベースへの接続に使用されるエンドポイントを入力します。 この例では、パブリック IP アドレスを入力します。 ポート番号 ユーザー作成の MySQL データベースのサービスポート番号を入力します。 デフォルトのポート番号は、3306 です。 データベースアカウント ユーザー作成の MySQL データベースのアカウントを入力します。 アカウントに必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。 データベースパスワード ソースデータベースアカウントのパスワードを入力します。 説明 ソースデータベースのパラメーターを指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、指定したパラメーターが有効かどうかを確認します。 指定されたパラメーターが有効な場合、Passedメッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 チェック結果に基づいてソースデータベースのパラメーターを変更します。ターゲットデータベース インスタンスタイプ [PolarDB] を選択します。 インスタンスリージョン ターゲットPolarDBクラスターが存在するリージョンを選択します。 PolarDBインスタンスID ターゲットPolarDBクラスターのIDを選択します。 データベースアカウント ターゲットPolarDBクラスターのデータベースアカウントを入力します。 アカウントに必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。 データベースパスワード ターゲットデータベースアカウントのパスワードを入力します。 説明 ターゲットデータベースパラメーターを指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、指定したパラメーターが有効かどうかを確認します。 指定されたパラメーターが有効な場合、Passedメッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 チェック結果に基づいて、ターゲットデータベースのパラメーターを変更します。 - ページの右下隅にある [ホワイトリストと次への設定] をクリックします。 説明 DTSは、DTSサーバーのCIDRブロックをターゲットPolarDB for MySQLクラスターのホワイトリストに追加します。 これにより、DTSサーバーが宛先クラスターに接続できるようになります。
- 必要な移行タイプと移行するオブジェクトを選択します。

設定 説明 移行タイプの選択 - フルデータ移行のみを実行するには、[スキーマ移行] と [フルデータ移行] を選択します。
- データ移行中のサービスの継続性を確保するには、[スキーマ移行] 、[フルデータ移行] 、および [増分データ移行] を選択します。
重要 増分データ移行が選択されていない場合、完全データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。移行するオブジェクトを選択します。 [使用可能] セクションから1つ以上のオブジェクトを選択し、
アイコンをクリックして、オブジェクトを [選択済み] セクションに追加します。 重要- 移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。
- 既定では、オブジェクトがターゲットデータベースに移行された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
- オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。
オブジェクトの名前を変更するかどうかを指定する オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。 ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定 既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。 説明 DTSがソースデータベースとターゲットデータベースへの再接続を試みる時間範囲内で、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースデータベースとターゲットデータベースがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。DMSがソーステーブルに対してオンラインDDL操作を実行するときに、一時テーブルをターゲットデータベースにコピーするかどうかを指定します。 DMSを使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルを移行するかどうかを指定できます。 有効な値: - はい: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行します。 説明 オンラインDDL操作で大量のデータが生成される場合、データ移行タスクが完了するまでに長時間かかることがあります。
- No: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを移行しません。 移行元データベースの元のDDLデータのみが移行されます。 説明 [いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
- ページの右下隅にある [事前チェック] をクリックします。 説明
- データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
- タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある
アイコンをクリックして詳細を表示できます。 - 原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。
- 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
- タスクが事前チェックに合格したら、[次へ] をクリックします。
- [設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。
- [購入と開始] をクリックして、データ移行タスクを開始します。
- スキーマ移行とフルデータ移行
フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 データ移行タスクが自動的に停止するまで待つことができます。
- スキーマ移行、完全データ移行、および増分データ移行
増分データ移行タスクは自動的に停止しません。 タスクを手動で停止する必要があります。
重要 データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードを移行先クラスターに切り替える前にタスクを停止できます。- 増分データ移行と移行タスクが遅延しませんが移行タスクのプログレスバーに表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。
- 増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。

- スキーマ移行とフルデータ移行
- ワークロードをターゲットPolarDBクラスターに切り替えます。