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