Data Transmission Service (DTS) を使用して、自己管理型の IBM Db2 for Linux、UNIX、Windows (LUW) データベースから PolarDB for MySQL クラスターへデータを移行します。DTS はスキーマ移行、完全なデータ移行、および増分データ移行をサポートしているため、ダウンタイム許容範囲に応じて最適な移行方式を選択できます。
前提条件
開始する前に、以下の点を確認してください。
移行先の PolarDB for MySQL クラスターに、ソースとなる Db2 for LUW データベースの全データを格納できる十分な空きストレージ容量があること。クラスターの作成手順については、「従量課金クラスターの購入」および「サブスクリプションクラスターの購入」をご参照ください。
増分データ移行の場合:ソース Db2 for LUW データベースでアーカイブログが有効になっています。詳しくは、「logarchmeth1 - プライマリーログアーカイブ方法構成パラメーター」および「logarchmeth2 - セカンダリーログアーカイブ方法構成パラメーター」をご参照ください。
logarchmeth 構成を変更した後は、変更を適用するためにソースデータベースのバックアップを実行してください。バックアップを行わないと、移行タスク開始時に事前チェックエラーが発生します。
対応している Db2 for LUW のバージョンについては、「データ移行シナリオの概要」をご参照ください。
課金
| 移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
|---|---|---|
| スキーマ移行および完全なデータ移行 | 無料 | 無料 |
| 増分データ移行 | 課金対象 — 詳細については、「課金概要 | — |
必要な権限
移行タスクで使用するデータベースアカウントに、以下の権限を付与してください。
| データベース | スキーマ移行 | 完全なデータ移行 | 増分データ移行 |
|---|---|---|---|
| Db2 for LUW | CONNECT および SELECT | CONNECT および SELECT | データベース管理者権限 |
| PolarDB for MySQL | — | 送信先データベースに対する読み取りおよび書き込み | — |
PolarDB for MySQL の送信先データベースには、特権アカウントを使用してください。
アカウントの作成および権限の付与手順については、以下をご参照ください。
Db2 for LUW:「Db2 データベースインストール用のグループおよびユーザー ID の作成(Linux および UNIX)」および「権限の概要」
PolarDB for MySQL:「データベースアカウントの作成」および「クラスター向けデータベースアカウントの管理」
制限事項
スキーマ移行
DTS は、ソースデータベースから送信先データベースへ外部キーを移行します。
完全なデータ移行および増分データ移行
DTS は、セッションレベルで外部キーに関する制約チェックおよびカスケード操作を一時的に無効化します。移行中にソースデータベースでカスケード操作または削除操作を実行すると、データの不整合が発生する可能性があります。
ソースデータベースの要件
ソースデータベースサーバーには、十分なアウトバウンド帯域幅が必要です。帯域幅が不足していると、移行速度が低下します。
移行対象のテーブルには、PRIMARY KEY または一意制約(UNIQUE constraint)が設定されており、すべてのフィールド値が一意である必要があります。これらの制約が設定されていないテーブルは、送信先データベースで重複レコードを生成する可能性があります。
テーブル単位で移行対象を選択し、送信先でテーブル名またはカラム名の変更が必要な場合、1 つの移行タスクでは最大 1,000 個のテーブルまでサポートされます。1,000 個を超える場合は、複数のタスクを作成するか、代わりにデータベース全体を移行してください。
増分データ移行の要件
ソースデータベースでデータログ機能が有効化されている必要があります。無効な場合、事前チェックに失敗し、移行タスクを開始できません。
ログ保持期間の要件:DTS が保持期間不足によりデータログを取得できない場合、タスクは失敗し、データ損失または不整合が発生する可能性があります。ログ保持期間がこれらの要件を満たさない場合、サービスレベルアグリーメント(SLA)による信頼性およびパフォーマンスの保証は行われません。
増分移行のみの場合:ログは 24 時間以上保持する必要があります。
完全なデータ移行と増分データ移行を併用する場合:ログは最低 7 日間保持する必要があります。
完全なデータ移行完了後は、ログ保持期間を 24 時間以上に設定してください。
DTS は、Db2 for LUW の Change Data Capture(CDC)レプリケーション技術を用いて増分データを移行します。CDC 固有の制限事項については、「SQL レプリケーションの一般的なデータ制限」をご参照ください。
移行中のソースデータベースでの操作
完全なデータ移行中:データベースまたはテーブルのスキーマを変更する DDL 操作は実行しないでください。このような操作は、移行タスクの失敗を引き起こします。
完全なデータ移行(増分なし)中:ソースデータベースへのデータ書き込みは行わないでください。データ整合性を確保するためには、完全なデータ移行と増分データ移行の両方を選択することを推奨します。
その他の制限事項
移行タスクは、非ピーク時間帯にスケジュールしてください。完全なデータ移行では、ソースおよび送信先データベースの読み取り・書き込みリソースが使用されるため、サーバー負荷が増加します。
完全なデータ移行完了後、送信先データベースの使用済み表領域(tablespace)は、ソースデータベースよりも大きくなります。移行中の同時 INSERT 操作により、テーブルの断片化が発生する可能性があります。
移行中は、ソースデータベース以外からのデータを送信先データベースに書き込まないでください。他のソースからのデータは、データの不整合を引き起こします。移行後の DDL 操作には、Data Management(DMS) をご使用ください。
送信先データベースで DDL ステートメントの実行に失敗した場合でも、DTS はタスクの実行を継続します。失敗した DDL ステートメントは、タスクログで確認できます。「タスクログの表示」をご参照ください。
自己管理型 Db2 for LUW データベースの特殊ケース
移行タスク実行中にソースデータベースでプライマリ/セカンダリ スイッチオーバーが発生した場合、タスクは失敗します。
DTS は、送信先データベースで最新に移行されたデータのタイムスタンプと、ソースデータベースの現在時刻を比較することで、移行遅延を算出します。ソースデータベースで長期間 DML 操作が実行されない場合、遅延の測定値が不正確になる可能性があります。遅延を更新するには、ソースデータベースで任意の DML 操作を実行してください。
説明データベース全体を移行対象として選択する場合、ハートビートテーブルを作成してください。DTS はこのテーブルを 1 秒ごとに更新し、遅延の測定値を正確に保ちます。
増分データ移行でサポートされる SQL 操作
| 操作タイプ | SQL ステートメント |
|---|---|
| DML | INSERT、UPDATE、DELETE |
Db2 for LUW から PolarDB for MySQL へのデータ移行
ステップ 1:データ移行タスクページへ移動
Data Management(DMS)コンソール にログインします。
上部ナビゲーションバーで、DTS をクリックします。
左側ナビゲーションウィンドウで、DTS(DTS) > データ移行 を選択します。
また、直接「新 DTS コンソールのデータ移行タスクページ」にアクセスすることもできます。コンソールのレイアウトおよび利用可能なオプションは、ご利用の DMS モードによって異なります。「シンプルモード」および「DMS コンソールのレイアウトおよびスタイルのカスタマイズ」をご参照ください。
ステップ 2:リージョンの選択
データ移行タスク の横にあるドロップダウンリストから、移行インスタンスが配置されているリージョンを選択します。
新 DTS コンソールでは、左上隅でリージョンを選択します。
ステップ 3:ソースおよび送信先データベースの構成
タスクの作成 をクリックします。タスクの作成 ページで、以下のパラメーターを構成します。
ソースデータベース(Db2 for LUW)
| パラメーター | 説明 |
|---|---|
| タスク名 | タスクを識別しやすい説明的な名前を指定します。DTS が自動的に名前を割り当てますが、必要に応じて変更してください。名前は一意である必要はありません。 |
| 既存の DMS データベースインスタンスを選択 | (任意)登録済みの既存インスタンスを選択すると、以下のパラメーターが自動的に入力されます。この項目をスキップする場合は、パラメーターを手動で構成してください。 |
| データベースタイプ | DB2 for LUW を選択します。 |
| アクセス方法 | Express Connect、VPN Gateway、または Smart Access Gateway を選択します。自己管理型データベースへのアクセスに必要な準備手順については、「準備の概要」をご参照ください。 |
| インスタンス リージョン | ソースの Db2 for LUW データベースが配置されているリージョンです。 |
| Alibaba Cloud アカウント間でのデータ複製 | いいえ を選択します。 |
| 接続済み VPC | ソースデータベースが属する仮想プライベートクラウド(VPC)の ID です。 |
| IP アドレスまたはドメイン名 | ソースの Db2 for LUW データベースサーバーの IP アドレスです。 |
| ポート番号 | ソースデータベースのサービスポートです。デフォルト値:50000。 |
| データベース名 | 移行対象オブジェクトを含むソースの Db2 for LUW データベースの名前です。 |
| データベースアカウント | ソースデータベースのデータベースアカウントです。「必要な権限」セクションで記載されている権限を付与してください。 |
| データベースパスワード | データベースアカウントのパスワードです。 |
送信先データベース(PolarDB for MySQL)
| パラメーター | 説明 |
|---|---|
| 既存の DMS データベースインスタンスを選択 | (任意)登録済みの既存インスタンスを選択すると、以下のパラメーターが自動的に入力されます。 |
| データベースタイプ | PolarDB for MySQL を選択します。 |
| アクセス方法 | Alibaba Cloud インスタンス を選択します。 |
| インスタンスリージョン | 送信先の PolarDB for MySQL クラスターが配置されているリージョンです。 |
| PolarDB クラスター ID | 送信先の PolarDB for MySQL クラスターの ID です。 |
| データベースアカウント | 送信先クラスターのデータベースアカウントです。「必要な権限」セクションで記載されている権限を付与してください。 |
| データベースパスワード | データベースアカウントのパスワードです。 |
| 暗号化 | SSL を使用した接続の暗号化を有効にするかどうかです。セキュリティ要件に応じて構成してください。「SSL 暗号化の設定」をご参照ください。 |
ステップ 4:接続性のテスト
接続性のテストと続行 をクリックします。
DTS は、Alibaba Cloud のデータベースインスタンスおよび ECS 上でホストされるデータベースに対して、自動的に自社サーバーの CIDR ブロックを IP アドレスホワイトリストまたはセキュリティグループルールに追加します。複数の ECS インスタンス上で動作する自己管理型データベースの場合は、各インスタンスのセキュリティグループルールに DTS の CIDR ブロックを手動で追加してください。オンプレミスデータベースまたは第三者プロバイダーがホストするデータベースの場合は、データベースのホワイトリストに DTS の CIDR ブロックを手動で追加してください。
DTS サーバーの CIDR ブロックの完全な一覧については、「オンプレミスデータベースのセキュリティ設定への DTS サーバー CIDR ブロックの追加」の「DTS サーバーの CIDR ブロック」セクションをご参照ください。
DTS の CIDR ブロックをデータベースのホワイトリストまたは ECS セキュリティグループに追加すると、セキュリティリスクが発生します。続行する前に、以下の予防措置を講じてください:アカウント認証情報を強化する、公開ポートを最小限に抑える、API 呼び出しを認証する、ホワイトリストまたはセキュリティグループルールを定期的に監査して不正な CIDR ブロックを削除する、可能であれば Express Connect、VPN Gateway、または Smart Access Gateway 経由で DTS に接続する。
ステップ 5:移行対象の構成
以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| 移行タイプ | ダウンタイム許容範囲に応じて、以下の移行タイプを選択してください:
|
| 競合テーブルの処理モード |
|
| 送信先インスタンスにおけるオブジェクト名の大文字小文字の処理 | 送信先におけるデータベース名、テーブル名、カラム名の大文字小文字の処理を制御します。デフォルト値:DTS のデフォルトポリシー。「送信先インスタンスにおけるオブジェクト名の大文字小文字の指定」をご参照ください。 |
| ソースオブジェクト | ソースオブジェクト からオブジェクトを選択し、矢印アイコンをクリックして 選択済みオブジェクト に追加します。テーブル、カラム、またはデータベースを選択できます。テーブルまたはカラムを選択した場合、ビュー、トリガー、ストアドプロシージャは移行されません。 |
| 選択済みオブジェクト |
説明 オブジェクト名マッピングを使用すると、依存オブジェクトの移行が失敗する可能性があります。すべてのテーブルを移行しない場合や、ソースと送信先のスキーマが異なる場合、送信先に存在しないカラムのデータは失われます。 |
ステップ 6:高度な設定の構成
次へ:高度な設定 をクリックし、以下のパラメーターを構成します。
データ検証
データ検証を構成するには、「データ検証の有効化」をご参照ください。
高度な設定
| パラメーター | 説明 |
|---|---|
| タスクのスケジュールに使用する専用クラスターの選択 | デフォルトでは、DTS は共有クラスター上で移行タスクを実行します。専用クラスターを使用する場合は、購入および指定を行ってください。「DTS 専用クラスターとは」をご参照ください。 |
| アラートの設定 | アラート機能を構成するかどうかです。はい を選択すると、タスクの失敗や移行遅延がしきい値を超えた際に通知を受け取ることができます。アラートのしきい値および連絡先を指定してください。「モニタリングおよびアラートの設定」をご参照ください。 |
| 送信先データベースのエンジンタイプの選択 | 送信先データベースのストレージエンジンです:InnoDB(デフォルト)または X-Engine(オンライントランザクション処理(OLTP)向けストレージエンジン)。 |
| 失敗した接続の再試行時間 | タスク開始後に失敗した接続を DTS が再試行する時間です。有効値:10~1440(単位:分)。デフォルト値:720。30 分を超える値を設定してください。この期間内に DTS が再接続できた場合、タスクは再開されます。それ以外の場合は、タスクが失敗します。 説明 複数のタスクが同一のソースまたは送信先データベースを共有する場合、最も最近に設定された再試行時間がすべてのタスクに適用されます。再試行期間中は、DTS インスタンスに対して課金されます。再試行時間の範囲は、ビジネス要件に基づいて指定することを推奨します。また、ソースおよび送信先インスタンスが解放された直後に、DTS インスタンスもできるだけ早期に解放することを推奨します。 |
| ソースおよび送信先データベースでその他の問題が発生した際の再試行までの待機時間 | DTS が失敗した DDL または DML 操作を再試行するまでの待機時間です。有効値:1~1440(単位:分)。デフォルト値:10。10 分を超える値を設定してください。この値は、失敗した接続の再試行時間 よりも小さくする必要があります。 |
| 完全なデータ移行のレート制限の有効化 | 完全なデータ移行中の移行レートを制限するかどうかです。ソースデータベースへのクエリ数(QPS)、完全なデータ移行の RPS、および 完全移行時のデータ移行速度(MB/s) を構成して、送信先データベースへの負荷を軽減します。このパラメーターは、完全なデータ移行 が選択された場合にのみ表示されます。 |
| 増分データ移行のレート制限の有効化 | 増分データ移行中の移行レートを制限するかどうかです。増分データ移行の RPS および 増分移行時のデータ移行速度(MB/s) を構成します。このパラメーターは、増分データ移行 が選択された場合にのみ表示されます。 |
| 環境タグ | DTS インスタンスを識別するために使用する環境タグです。ビジネス要件に応じて環境タグを選択できます。 |
| ETL の構成 | 抽出・変換・書き出し(ETL)処理を使用するかどうかです。はい を選択すると、データ処理ステートメントを入力できます。「データ移行または同期タスクにおける ETL の構成」をご参照ください。 |
ステップ 7:設定の保存および事前チェックの実行
次へ:タスク設定の保存および事前チェック をクリックします。
このタスク構成の API パラメーターをプレビューするには、次へ:タスク設定の保存および事前チェック の上にマウスを合わせ、OpenAPI パラメーターのプレビュー をクリックしてください。
DTS は、移行タスクを開始する前に事前チェックを実行します。事前チェックが成功した場合にのみ、タスクを開始できます。
チェック項目のいずれかが失敗した場合、失敗した項目の横にある 詳細の表示 をクリックし、エラーメッセージに基づいて問題を修正した後、再チェック をクリックしてください。
チェック項目でアラートが発生した場合:
アラートを無視できない場合は、失敗した項目の横にある 詳細の表示 をクリックしてトラブルシューティングを行い、その後 再チェック をクリックしてください。
アラートを安全に無視できる場合は、アラートの詳細の確認 をクリックします。詳細の表示 ダイアログボックスで 無視 をクリックし、次に OK、そして 再チェック をクリックしてください。アラートを無視すると、データの不整合が発生する可能性があります。
ステップ 8:事前チェックの完了を待機
成功率 が 100% に達するまで待機し、その後 次へ:インスタンスの購入 をクリックします。
ステップ 9:インスタンスクラスの構成
インスタンスの購入 ページで、以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| リソースグループ | 移行インスタンスのリソースグループ。デフォルト: デフォルト リソースグループ。詳細については、「Resource Management とは何か? |
| インスタンスクラス | インスタンスクラスは移行速度を決定します。データ量および所要時間に応じて選択してください。「データ移行インスタンスの仕様」をご参照ください。 |
ステップ 10:サービス利用規約の承諾
Data Transmission Service(従量課金)サービス利用規約 を確認し、チェックボックスをオンにして承諾してください。
ステップ 11:移行タスクの開始
購入および開始 をクリックします。移行タスクが開始されます。タスクリストで進行状況を確認できます。