Data Transmission Service (DTS) を使用して、PolarDB for MySQL クラスターから PolarDB-X 1.0 インスタンスへデータを移行します。一度限りの切り替え(カットオーバー)を行う場合は完全なデータ移行を実行し、完全移行と増分移行を組み合わせることで、切り替え準備が整うまでデータを同期した状態に保つことができます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ソースの PolarDB for MySQL クラスターの合計データサイズより大きな利用可能ストレージ容量を持つ PolarDB-X 1.0 インスタンス。インスタンス作成時にストレージタイプとして ApsaraDB RDS for MySQL を選択します。詳細については、「PolarDB-X 1.0 インスタンスの作成」をご参照ください。
宛先の PolarDB-X 1.0 インスタンスに事前に作成済みのデータベースおよびテーブル。スキーマ移行はサポートされていないため、移行タスクの開始前にターゲットスキーマを作成する必要があります。詳細については、「データベースの作成」および「基本的な SQL 操作」をご参照ください。
(増分移行の場合) ソースクラスターでバイナリロギングが有効化されており、
loose_polar_log_binパラメーターがonに設定されています。詳細については、「バイナリロギングの有効化」および「パラメーターの変更」をご参照ください。
課金
| 移行タイプ | タスク構成料金 | データ転送料金 |
|---|---|---|
| 完全なデータ移行 | 無料 | 無料 |
| 増分データ移行 | 課金対象です。詳細については、「課金概要」をご参照ください。 |
必要な権限
| データベース | 完全なデータ移行 | 増分データ移行 |
|---|---|---|
| ソース PolarDB for MySQL クラスター | SELECT | 読み取りおよび書き込み |
| 宛先 PolarDB-X 1.0 インスタンス | 読み取りおよび書き込み | 読み取りおよび書き込み |
データベースアカウントの作成および権限付与方法については、以下をご参照ください。
PolarDB for MySQL クラスター:「データベースアカウントの作成と管理」および「データベースアカウントのパスワード管理」
PolarDB-X 1.0 インスタンス:「データベースアカウントの管理」
増分移行でサポートされる SQL 操作
DML 操作(INSERT、UPDATE、DELETE)がサポートされます。
制限事項
ソースデータベースの制限事項
| 制限事項 | 詳細 |
|---|---|
| アウトバウンド帯域幅 | ソースサーバーには十分なアウトバウンド帯域幅が必要です。帯域幅が不足していると、移行速度が低下します。 |
| プライマリキーまたは一意制約 | 移行対象のテーブルには、すべてのフィールドが一意である PRIMARY KEY または一意制約(UNIQUE constraint)が必要です。該当しない場合、宛先に重複レコードが発生する可能性があります。 |
| テーブルレベルの移行制限 | テーブルレベルのオブジェクトを選択し、宛先でテーブル名またはカラム名を変更する必要がある場合、1 つの移行タスクでは最大 1,000 個のテーブルをサポートします。1,000 個を超える場合は、複数のタスクに分割するか、データベースレベルでの移行を実施してください。 |
| バイナリログ保持期間(増分移行) | ソースのバイナリログは、以下の期間保持する必要があります:増分移行のみ — 24 時間以上;完全移行+増分移行 — 最低 7 日間。完全移行完了後は、保持期間を 24 時間以上に短縮できます。DTS がバイナリログを取得できない場合、タスクは失敗し、データの不整合や損失が発生する可能性があります。上記の最低保持期間を下回る設定は、DTS のサービスレベルアグリーメント(SLA)の対象外となります。PolarDB for MySQL クラスターでバイナリロギングを有効化すると、バイナリログファイルのストレージ料金が発生します。 |
| 移行中の DDL 操作 | スキーマ移行または完全なデータ移行中は、ソースに対して DDL 操作を実行しないでください。移行中にスキーマが変更された場合、タスクは失敗します。 |
| 完全移行(増分なし)中の書き込み | 完全移行のみ(増分移行なし)の場合は、移行中にソースへの書き込みを行わないでください。継続的な書き込みをサポートするには、完全移行+増分移行を使用してください。 |
その他の制限事項
| 制限事項 | 詳細 |
|---|---|
| サポートされていないデータの型 | DTS では、以下のデータの型を移行できません:BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT。 |
| プレフィックスインデックス | プレフィックスインデックスは移行できません。ソースにプレフィックスインデックスが含まれている場合、タスクが失敗する可能性があります。 |
| 読み取り専用ノード | ソースの PolarDB for MySQL クラスターの読み取り専用ノードは移行できません。 |
| オンライン DDL ツール | 移行対象オブジェクトに対して、pt-online-schema-change などのオンライン DDL ツールを使用しないでください。オンライン DDL 操作を実行すると、タスクが失敗します。 |
| 宛先への同時書き込み | 移行中に、他のソースから宛先へのデータ書き込みを行わないでください。同時書き込みにより、データの不整合が発生します。 |
| サーバー負荷 | 完全なデータ移行では、ソースおよび宛先の読み取り・書き込みリソースが使用されるため、サーバー負荷が増加します。ピーク時を避けて、非ピーク時間帯に移行を実行することを推奨します。 |
| 宛先の表領域 | 完全移行では、同時 INSERT 操作により宛先テーブルに断片化が発生します。移行完了後、宛先の表領域はソースよりも大きくなります。 |
| ハートビートテーブルの動作 | DTS は、バイナリログファイルの位置を進めるために、定期的にソースに対して CREATE DATABASE IF NOT EXISTS `test` を実行します。これは想定された動作です。 |
データの移行
移行プロセスは 8 つのステップで構成されます:タスクページへの移動、タスクの作成、ソースおよび宛先データベースの構成、接続性のテスト、オブジェクトの選択および移行設定の構成、高度な設定の構成、事前チェックの実行、インスタンスの購入および移行の開始です。
ステップ 1:データ移行タスクページへ移動
移行タスクの作成および管理を行う DTS コンソールへ移動します。
Data Management (DMS) コンソール にログインします。
トップナビゲーションバーで、DTS をクリックします。
左側のナビゲーションウィンドウで、DTS (DTS) > データ移行 を選択します。
タスクページに直接移動するには、新しい DTS コンソールのデータ移行タスクページを使用し、左上隅でターゲットリージョンを選択します。コンソールのナビゲーションは、モードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
ステップ 2:移行タスクの作成
新しい移行タスクの構成を開始します。
データ移行タスク の横にあるドロップダウンリストから、移行インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックします。
(省略可) 右上隅の[新しい構成ページ]をクリックして、新しい構成 UI に切り替えてください。
すでに [以前のバージョンに戻す] が表示されている場合は、このステップをスキップしてください。すでに新しい構成ページにいます。新しい構成ページが推奨されます。
ステップ 3:ソースおよび宛先データベースの構成
ソースの PolarDB for MySQL クラスターおよび宛先の PolarDB-X 1.0 インスタンスの接続情報を入力します。
| セクション | パラメーター | 説明 |
|---|---|---|
| 該当なし | タスク名 | タスクを識別するための説明的な名前。DTS がデフォルト名を割り当てますが、そのまま使用するか、意味のある名前に置き換えてください。タスク名は一意である必要はありません。 |
| ソースデータベース | DMS データベースインスタンスの選択 | 既存のインスタンスを選択すると、パラメーターが自動的に入力されます。手動で構成する場合は、空白のままにしてください。新規データベースを登録するには:DMS コンソールで テンプレートの作成 をクリックするか、DTS コンソールで データベース接続 ページを使用してください。詳細については、「Alibaba Cloud データベースインスタンスの登録」および「データベース接続の管理」をご参照ください。 |
| データベースタイプ | PolarDB for MySQL を選択します。 | |
| アクセス方法 | Alibaba Cloud インスタンス を選択します。 | |
| インスタンスリージョン | ソースの PolarDB for MySQL クラスターのリージョン。 | |
| Alibaba Cloud アカウント間でのデータ複製 | ソースと宛先が同一の Alibaba Cloud アカウント内にある場合は、いいえ を選択します。 | |
| PolarDB クラスター ID | ソースの PolarDB for MySQL クラスターの ID。 | |
| データベースアカウント | ソースクラスターのデータベースアカウント。詳細については、「必要な権限」をご参照ください。 | |
| データベースパスワード | データベースアカウントのパスワード。 | |
| 暗号化 | 接続を暗号化するかどうか。詳細については、「SSL 暗号化の構成」をご参照ください。 | |
| 宛先データベース | DMS データベースインスタンスの選択 | ソースと同様に、既存のインスタンスを選択するか、手動で構成してください。 |
| データベースタイプ | PolarDB-X 1.0 を選択します。 | |
| アクセス方法 | Alibaba Cloud インスタンス を選択します。 | |
| インスタンスリージョン | 宛先の PolarDB-X 1.0 インスタンスのリージョン。 | |
| インスタンス ID | 宛先の PolarDB-X 1.0 インスタンスの ID。 | |
| データベースアカウント | 宛先インスタンスのデータベースアカウント。詳細については、「必要な権限」をご参照ください。 | |
| データベースパスワード | データベースアカウントのパスワード。 |
ステップ 4:接続性のテストおよび DTS アクセスの承認
ページ下部の 接続性のテストと続行 をクリックします。
DTS は、自動的にその CIDR ブロックを Alibaba Cloud データベースインスタンスの IP ホワイトリスト、または自己管理データベースをホストする Elastic Compute Service (ECS) インスタンスのセキュリティグループルールに追加します。複数の ECS インスタンスで実行される自己管理データベースの場合、各インスタンスに CIDR ブロックを手動で追加する必要があります。オンプレミスまたはサードパーティクラウドのデータベースの場合、データベースの IP ホワイトリストに CIDR ブロックを手動で追加してください。詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。
DTS の CIDR ブロックをホワイトリストまたはセキュリティグループルールに追加すると、セキュリティ上のリスクが生じる可能性があります。続行する前に、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期的な監査など、予防措置を講じてください。また、Express Connect、VPN Gateway、Smart Access Gateway を介してデータベースを DTS に接続することも可能です。
ステップ 5:オブジェクトの選択および移行設定の構成
移行対象のデータベースまたはテーブルを選択し、移行タイプを指定します。
オブジェクトの選択 ページで、以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| 移行タイプ | 一度限りの移行を行う場合は、完全なデータ移行 を選択します。宛先を同期した状態に保ち、移行ウィンドウ中のダウンタイムを最小限に抑える場合は、完全なデータ移行 と 増分データ移行 の両方を選択します。完全移行のみを選択した場合は、移行中にソースへの書き込みを行わないでください。 |
| 競合テーブルの処理モード | 事前チェックとエラーの報告:ソーステーブル名が送信先テーブル名と一致する場合、事前チェックは失敗します。「オブジェクト名マッピング機能」を使用して、競合するテーブルの名前を変更します。エラーを無視して続行:名前の競合に関する事前チェックをスキップします。プライマリキーが一致する行はスキップされます。スキーマの不一致により、部分的な移行またはタスクの失敗が発生する可能性があります。注意して使用してください。 |
| 宛先インスタンスにおけるオブジェクト名の大文字小文字の処理 | 宛先でのデータベース名、テーブル名、および列名の大文字小文字の制御を行います。デフォルトは DTS デフォルトポリシー です。詳細については、「宛先インスタンスでのオブジェクト名の大文字小文字の指定」をご参照ください。 |
| ソースオブジェクト | 移行対象のオブジェクトを選択し、矢印アイコンをクリックして 選択済みオブジェクト に追加します。移行対象として選択できるのはテーブルのみです。 |
| 選択済みオブジェクト | 単一のオブジェクトの名前を変更するには、右クリックします。複数のオブジェクトの名前を変更するには、一括編集オブジェクト名のマップ をクリックします。行をフィルターするには、テーブルを右クリックしてフィルター条件を設定します。詳細については、「」および「フィルター条件の設定」をご参照ください。オブジェクトの名前を変更すると、依存オブジェクトの移行が失敗する可能性があります。 |
ステップ 6:高度な設定の構成
次へ:高度な設定 をクリックし、タスクの動作、パフォーマンスの速度制限、アラート通知を制御する以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| タスクスケジューリング用の専用クラスター | デフォルトでは、DTS は共有クラスターにタスクをスケジュールします。安定性を向上させるには、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。 |
| 接続失敗時のリトライ時間 | タスク開始後にソースまたは送信先が到達不能になった場合に DTS がリトライする時間です。有効な値:10~1,440 分。デフォルト値:720 分。少なくとも 30 分以上に設定してください。複数のタスクが同じデータベースを共有する場合、最後に設定された値が優先されます。リトライ試行中も DTS は課金されます。 |
| その他の問題に対するリトライ時間 | 失敗した DDL または DML 操作を DTS がリトライする時間です。有効な値:1~1,440 分。デフォルト値:10 分。少なくとも 10 分以上に設定してください。[接続失敗時のリトライ時間] よりも小さい値を設定する必要があります。 |
| 完全データ移行のレート制限を有効化 | [ソースデータベースへの 1 秒あたりのクエリ数 (QPS)]、[完全データ移行の RPS]、および [完全データ移行のデータ移行速度 (MB/s)] を設定することで、完全移行中のソースと送信先の読み取り/書き込み負荷を制限します。[完全データ移行] を選択した場合にのみ利用可能です。 |
| 増分データ移行のレート制限を有効化 | [増分データ移行の RPS] と [増分データ移行のデータ移行速度 (MB/s)] を設定することで、増分移行中の負荷を制限します。[増分データ移行] を選択した場合にのみ利用可能です。 |
| 環境タグ | DTS インスタンスを識別するためのタグです。任意です。 |
| 正逆両タスクのハートビートテーブルに対する SQL 操作を削除するかどうか | DTS がソースデータベースにハートビート SQL を書き込むかどうかを制御します。[はい]:ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスの遅延が表示されることがあります。[いいえ]:DTS はハートビート SQL を書き込みます。これは、ソースデータベースの物理バックアップやクローニングに影響を与える可能性があります。 |
| ETL の設定 | 抽出、変換、ロード (ETL) 処理を設定するかどうか。[はい]:データ変換文用のコードエディターが開きます。詳細については、「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。[いいえ]:ETL 処理は行われません。 |
| モニタリングとアラート | タスクが失敗した場合や、遅延がしきい値を超えた場合にアラートを受信するかどうか。[はい]:アラートのしきい値と通知設定を構成します。詳細については、「DTS タスク作成時のモニタリングとアラートの設定」をご参照ください。[いいえ]:アラートは送信されません。 |
ステップ 7:設定の保存および事前チェックの実行
DTS は、移行を開始する前に構成内容を検証します。事前チェックが成功するまで、タスクを開始できません。
次へ:タスク設定の保存および事前チェック をクリックします。
保存前にこの構成の OpenAPI パラメーターをプレビューするには、次へ:タスク設定の保存および事前チェック 上にマウスを合わせ、OpenAPI パラメーターのプレビュー をクリックします。
チェック項目のいずれかが失敗した場合は、失敗した項目の横にある 詳細の表示 をクリックし、問題を修正した後、再チェック をクリックします。
チェック項目のいずれかが無視可能なアラートを生成した場合は、アラートの詳細の確認 をクリックし、無視 > OK > 再チェック をクリックします。無視したアラートは、データの不整合を引き起こす可能性があります。
成功率 が 100% になるまで待機し、その後 次へ:インスタンスの購入 をクリックします。
ステップ 8:インスタンスの購入および移行の開始
移行速度を決定するインスタンスクラスを選択し、タスクを開始します。
インスタンスの購入 ページで、以下のパラメーターを構成します。
セクション パラメーター 説明 新規インスタンスクラス リソースグループ設定 移行インスタンスのリソースグループです。デフォルト:デフォルトのリソースグループ。詳細については、「Resource Management とは」をご参照ください。 インスタンスクラス 移行インスタンスのクラスです。移行速度を決定します。詳細については、「データ移行インスタンスの仕様」をご参照ください。 Data Transmission Service(従量課金)サービス利用規約 に同意するチェックボックスをオンにします。
購入および開始 をクリックして移行タスクを開始します。タスクリストで進行状況を確認できます。