すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:Db2 for LUWデータベースからデータを移行するための使用方法と制限

最終更新日:Nov 14, 2024

このトピックでは、Db2 for LUWデータベースからデータを移行するための使用方法と制限について説明します。 データ移行タスクが期待どおりに実行されるようにするには、タスクを設定する前に使用状況のメモと制限をお読みください。

Db2 for LUWデータベースからPolarDB-Xインスタンスへのデータの移行

カテゴリ

説明

ソースデータベースの制限

  • ソースデータベースがデプロイされるサーバーには、十分なアウトバウンド帯域幅が必要です。 そうしないと、データ移行速度が低下します。

  • 移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。

  • 移行するオブジェクトとしてテーブルを選択し、テーブルや列の名前の変更など、移行先データベースのテーブルを編集する必要がある場合は、1つのデータ移行タスクで最大1,000のテーブルを移行できます。 タスクを実行して1,000を超えるテーブルを移行すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルをバッチで移行するか、タスクを構成してデータベース全体を移行することをお勧めします。

  • 増分データを移行する場合は、次の要件が満たされていることを確認してください。

    • データログ機能を有効にする必要があります。 それ以外の場合、事前チェック中にエラーメッセージが返され、データ移行タスクを開始できません。

    • 増分データ移行のみを実行する場合、ソースデータベースのデータログを24時間以上保存する必要があります。 完全データ移行と増分データ移行の両方を実行する場合、ソースデータベースのデータログは少なくとも7日間保存する必要があります。 そうしないと、Data Transmission Service (DTS) がデータログの取得に失敗し、タスクが失敗する可能性があります。 例外的な状況では、データの不整合または損失が発生します。 完全なデータ移行が完了したら、保持期間を24時間以上に設定できます。 上記の要件に基づいて、データログの保持期間を設定してください。 そうしないと、DTSのSLA (service Level Agreement) に記載されているサービスの信頼性またはパフォーマンスが保証されません。

  • ソースデータベースで実行する操作の制限:

    • フルデータ移行中は、DDL操作を実行してデータベースまたはテーブルのスキーマを変更しないでください。 それ以外の場合、データ移行タスクは失敗します。

    • フルデータ移行のみを実行する場合は、データ移行中にソースデータベースにデータを書き込まないでください。 それ以外の場合、ソースデータベースとターゲットデータベース間でデータの不一致が発生します。 データの一貫性を確保するために、移行タイプとして完全データ移行と増分データ移行を選択することを推奨します。

  • 移行するテーブルでは、変更データキャプチャ (CDC) 機能を有効にする必要があります。

その他の制限

  • DTSは、Db2 for LUWのCDCレプリケーション技術に基づいて、増分データをDb2 for LUWデータベースからターゲットデータベースに移行します。 しかし、CDC複製技術には独自の限界がある。 詳細については、「SQLレプリケーションの一般的なデータ制限」をご参照ください。

  • データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。

  • 完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全データ移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。

  • FLOATまたはDOUBLEデータ型の列の精度設定がビジネス要件を満たしていることを確認する必要があります。 DTSはROUND(COLUMN,PRECISION) 関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の精度を38桁に設定し、DOUBLEデータ型の精度を308桁に設定します。

  • DTSは、過去7日以内に失敗したデータ移行タスクを再開しようとします。 ワークロードをターゲットデータベースに切り替える前に、失敗したタスクを停止またはリリースする必要があります。 REVOKEステートメントを実行して、DTSがターゲットデータベースにアクセスするために使用するアカウントの書き込み権限を取り消すこともできます。 それ以外の場合、データ移行タスクが再開された後、ソースデータベースのデータがターゲットデータベースのデータを上書きします。

特別なケース

ソースDb2 for LUWデータベースは自己管理データベースです。 Db2 for LUWデータベースからデータを移行する場合は、次の項目に注意してください。

  • データ移行タスクの実行中にソースデータベースでプライマリ /セカンダリの切り替えを実行すると、タスクは失敗します。

  • DTSは、移行先データベースの最新の移行データのタイムスタンプと移行元データベースの現在のタイムスタンプに基づいて、移行レイテンシを計算します。 ソースデータベースでDML操作が長時間実行されない場合、移行レイテンシが不正確になる可能性があります。 データ移行タスクのレイテンシが高すぎる場合は、ソースデータベースでDML操作を実行してレイテンシを更新できます。

    説明

    移行するオブジェクトとしてデータベース全体を選択した場合は、ハートビートテーブルを作成できます。 ハートビートテーブルは1秒ごとに更新されるか、データを受信します。