のソースとしての IBM Db2 for Linux、Unix、Windows、Amazon RDS データベース (Db2 LUW) の使用 AWS DMS - AWS Database Migration Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

のソースとしての IBM Db2 for Linux、Unix、Windows、Amazon RDS データベース (Db2 LUW) の使用 AWS DMS

AWS Database Migration Service () を使用して、IBM Db2 for Linux、Unix、Windows、Amazon RDS (Db2 LUW) データベースからサポートされている任意のターゲットデータベースにデータを移行できますAWS DMS。

がソースとして AWS DMS サポートする Linux、Unix、Windows、および RDS の Db2 のバージョンについては、「」を参照してくださいのソース AWS DMS

Secure Sockets Layer (SSL) を使用して、Db2 LUW エンドポイントとレプリケーションインスタンスとの接続を暗号化できます。Db2 LUW エンドポイントで SSL を使用する方法の詳細については、「での SSL の使用 AWS Database Migration Service」をご参照ください。

のソースとして Db2 LUW を使用する場合の前提条件 AWS DMS

Db2 LUW データベースをソースとして使用する前に、次の前提条件が必要です。

変更データキャプチャ (CDC) とも呼ばれる継続的なレプリケーションを有効にするには、次を実行します。

  • データベースを復旧可能に設定すると、 は変更をキャプチャ AWS DMS する必要があります。データベース設定パラメータの LOGARCHMETH1LOGARCHMETH2 のどちらかまたは両方が ON に設定されている場合、データベースは復元可能です。

    データベースが復旧可能な場合、 AWS DMS はARCHIVE LOG必要に応じて Db2 にアクセスできます。

  • DB2 トランザクションログが使用可能であり、処理に十分な保持期間があることを確認します AWS DMS。

  • DB2 ではトランザクションログレコードを抽出するのに SYSADM 認証または DBADM 認証が必要です。ユーザーアカウントに次のアクセス権限を付与します。

    • SYSADM、または DBADM

    • DATAACCESS

    注記

    フルロードのみのタスクの場合、DMS ユーザーアカウントには DATAACCESS アクセス権限が必要です。

  • ソースとして IBM DB2 for LUW バージョン 9.7 を使用する場合は、追加接続属性 (ECA) を設定し、以下のように CurrentLSN に設定します:

    CurrentLSN=LSN、ここに LSN は、レプリケーションをスタートするログ シーケンス番号 (LSN) を指定します。または、CurrentLSN=scan

  • Amazon RDS for Db2 LUW をソースとして使用する場合は、アーカイブログが使用可能であることを確認します AWS DMS。マネージド AWS Db2 データベースは、アーカイブログをできるだけ早く消去するため、ログが利用可能なままである時間を増やす必要があります。例えば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。

    db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"

    Amazon RDS for Db2 LUW プロシージャの詳細については、「Amazon Relational Database Service ユーザーガイド」の「Amazon RDS for Db2 ストアドプロシージャリファレンス」を参照してください。

のソースとして Db2 LUW を使用する場合の制限 AWS DMS

AWS DMS は、クラスター化されたデータベースをサポートしていません。ただし、クラスターの各エンドポイントに個別の Db2 LUW を定義することができます。例えば、クラスター内のいずれかのノードでフルロードの移行タスクを作成して、各ノードから個別のタスクを作成できます。

AWS DMS は、ソース Db2 LUW データベースBOOLEANのデータ型をサポートしていません。

継続的なレプリケーション (CDC) を使用する場合は、次の制限が適用されます。

  • 複数のパーティションを持つテーブルが切り捨てられると、 AWS DMS コンソールに表示される DDL イベントの数はパーティションの数と等しくなります。これは、Db2 LUW がパーティションごとに個別の DDL を記録するためです。

  • 次の DDL アクションは、分割されたテーブルではサポート外です。

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DETACH PARTITION

    • ALTER TABLE ATTACH PARTITION

  • AWS DMS は、DB2 高可用性ディザスタリカバリ (HADR) スタンバイインスタンスからの継続的なレプリケーション移行をサポートしていません。スタンバイはアクセスできません。

  • DECFLOAT データ型はサポート外です。したがって、DECFLOAT 列への変更は、継続的なレプリケーション中は無視されます。

  • RENAME COLUMN ステートメントはサポート外です。

  • 多次元クラスタリング (MDC) テーブルの更新を実行すると、各更新は INSERT + DELETE として AWS DMS コンソールに表示されます。

  • タスクの設定 [レプリケーションに LOB 列を含める] が有効でない場合、LOB 列を持つテーブルは、継続的なレプリケーション中に中断されます。

  • Db2 LUW バージョン 10.5 以上の場合: 行外に格納されたデータを含む可変長文字列は無視されます。この制限は、VARCHAR や VARGRAPHIC などのデータ型を持つ列の拡張行サイズを使用して作成されたテーブルにのみ適用されます。この制限を回避するには、テーブルをページサイズの大きいテーブルスペースに移動します。詳細については、「What can I do if I want to change the pagesize of DB2 tablespaces」を参照してください。

  • 継続的レプリケーションの場合、DMS は DB2 LOAD ユーティリティによってページレベルでロードされたデータの移行をサポートしていません。代わりに、SQL 挿入を使用する IMPORT ユーティリティを使用します。詳細については、「インポートユーティリティとロードユーティリティの違い」をご参照ください。

  • レプリケーションタスクの実行中、DMS が CREATE TABLE DDL をキャプチャするのは、テーブルが DATA CAPTURE CHANGE 属性で作成された場合のみです。

  • Db2 データベースパーティション機能 (DPF) を使用する場合、DMS には次の制限があります。

    • DMS は、DPF 環境内の Db2 ノード間でトランザクションを調整できません。これは、IBM DB2READLOG API インターフェイス内の制約によるものです。DPF では、DB2 のデータのパーティション化の方法に応じて、トランザクションが複数の Db2 ノードにまたがる場合があります。その結果、DMS ソリューションは各 Db2 ノードからトランザクションを個別にキャプチャする必要があります。

    • DMS は、複数の DMS ソースエンドポイントで connectNode1 に設定することで、DPF クラスターの各 Db2 ノードからローカルトランザクションをキャプチャできます。この設定は、DB2 サーバー設定ファイル db2nodes.cfg で定義されている論理ノード番号に対応します。

    • 個々の Db2 ノードのローカルトランザクションは、大規模なグローバルトランザクションの一部である場合があります。DMS は、他の Db2 ノードのトランザクションと調整することなく、各ローカルトランザクションを個別にターゲットに適用します。この独立した処理は、特にパーティション間で行を移動する場合に複雑になる可能性があります。

    • DMS が複数の Db2 ノードからレプリケートする場合、DMS は各 Db2 ノードに独立してオペレーションを適用するため、ターゲットにおいて正しいオペレーション順序は保証されません。各 Db2 ノードから独立してローカルトランザクションをキャプチャすることが、特定のユースケースで機能することを確認する必要があります。

    • DPF 環境から移行する場合は、まずキャッシュされたイベントなしでフルロードタスクを実行し、次に CDC のみのタスクを実行することをお勧めします。StartFromContext エンドポイント設定を使用して設定したフルロード開始タイムスタンプ、または LRI (ログレコード識別子) から、Db2 ノードごとに 1 つのタスクを実行することをお勧めします。レプリケーション開始点の決定については、「IBM Support documentation」の「Finding the LSN or LRI value for replication start」を参照してください。

  • 継続的なレプリケーション (CDC) で、特定のタイムスタンプからレプリケーションを開始する場合は、StartFromContext 接続属性を必要なタイムスタンプに設定する必要があります。

  • データベースソリューションのスケーリングに使用できる DB2 LUW の拡張機能である Db2 PureScale 機能は、DMS では現時点ではサポートしていません。

  • DATA CAPTURE CHANGES テーブルオプションは、DB2 データレプリケーションプロセスの重要な前提条件です。テーブルの作成時にこのオプションを有効にしないと、特に CDC (変更データキャプチャ) のみのレプリケーションタスクでは、データが欠落する可能性があります。 AWS DMS は、CDC または FULL+CDC タスクを再起動するときに、デフォルトでこの属性を有効にします。ただし、タスクの再起動前にソースデータベースで行われた変更は失われる可能性があります。

    ALTER TABLE TABLE_SCHEMA.TABLE_NAME DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;

のソースとして Db2 LUW を使用する場合のエンドポイント設定 AWS DMS

追加の接続属性の使用と同様、エンドポイントの設定を使用して、ソースの Db2 LUW データベースを設定できます。 AWS DMS コンソールを使用するか、--ibm-db2-settings '{"EndpointSetting": "value", ...}'JSON 構文で の create-endpoint コマンドを使用してAWS CLI、ソースエンドポイントを作成するときに設定を指定します。

次の表は、ソースとして Db2 LUW を使用できるエンドポイント設定を説明しています。

名前 説明

CurrentLSN

継続的なレプリケーション (CDC) では、CurrentLSN を使用してレプリケーションを開始するログシーケンス番号 (LSN) を指定します。

MaxKBytesPerRead

読み取りあたりの最大バイト数。NUMBER 値です。デフォルトは 64 KB です。

SetDataCaptureChanges

継続的なレプリケーション (CDC) を BOOLEAN 値として有効にします。デフォルトは true です。

StartFromContext

継続的レプリケーション (CDC) の場合は、StartFromContext を使用して、レプリケーションのスタート位置からログの下限を指定します。StartFromContext は異なる形式の値を受け入れます。有効な値を次に示します。

  • timestamp(UTC)。以下に例を示します。

    '{"StartFromContext": "timestamp:2021-09-21T13:00:00"}'
  • NOW

    IBM DB2 LUW バージョン 10.5 以降の場合、NOW と CurrentLSN: scan を組み合わせると、最新の LSO からタスクが開始される。以下に例を示します。

    '{"CurrentLSN": "scan", "StartFromContext": "NOW"}'
  • 特定のLRI。例:

    '{"StartFromContext": "0100000000000022CC000000000004FB13"}'

ログファイルの LRI/LSN 範囲を特定するには、次の例に示すように db2flsn コマンドを実行します。

db2flsn -db SAMPLE -lrirange 2

この例の出力は次のようになります。

S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to 000000000000000100000000000022CC000000000004FB13

その出力では、ログファイルは S0000002.LOG であり、StartFromContext LRI 値は、範囲の末尾にある 34 バイトです。

0100000000000022CC000000000004FB13

executeTimeout

DB2 LUW エンドポイントのステートメント (クエリ) タイムアウトを秒単位で設定する追加の接続属性。デフォルト値は 60 秒です。ECA の例:executeTimeout=120;

IBM Db2 LUW のソースデータ型

のソースとして Db2 LUW を使用するデータ移行は、ほとんどの Db2 LUW データ型 AWS DMS をサポートします。次の表は、 の使用時にサポートされる Db2 LUW ソースデータ型 AWS DMS と AWS DMS 、データ型からのデフォルトのマッピングを示しています。Db2 LUW データ型の詳細については、「Db2 LUW のドキュメント」をご参照ください。

ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイントのセクションをご参照ください。

AWS DMS データ型の詳細については、「」を参照してくださいAWS Database Migration Service のデータ型

Db2 LUW データ型

AWS DMS データ型

INTEGER

INT4

SMALLINT

INT2

BIGINT

INT8

DECIMAL (p,s)

NUMERIC (p,s)

FLOAT

REAL8

DOUBLE

REAL8

REAL

REAL4

DECFLOAT (p)

精度が 16 の場合は REAL8 で、精度が 34 の場合は STRING

GRAPHIC (n)

WSTRING、長さが 0 より大きく 127 以下の 2 バイト文字の固定長グラフィック文字列用

VARGRAPHIC (n)

WSTRING、長さが 0 より大きく 16,352 以下の 2 バイト文字の可変長グラフィック文字列用

LONG VARGRAPHIC (n)

CLOB、長さが 0 より大きく 16,352 以下の 2 バイト文字の可変長グラフィック文字列用

CHARACTER (n)

STRING、長さが 0 より大きく 255 以下の 2 バイト文字の固定長文字列用

VARCHAR(n)

STRING、長さが 0 より大きく 32,704 以下の 2 バイト文字の可変長文字列用

LONG VARCHAR (n)

CLOB、長さが 0 より大きく 32,704 以下の 2 バイト文字の可変長文字列用

CHAR (n) FOR BIT DATA

BYTES

VARCHAR (n) FOR BIT DATA

BYTES

LONG VARCHAR FOR BIT DATA

BYTES

DATE

DATE

TIME

TIME

タイムスタンプ

DATETIME

BLOB (n)

BLOB

最大長は 2,147,483,647 バイト

CLOB (n)

CLOB

最大長は 2,147,483,647 バイト

DBCLOB (n)

CLOB

最大サイズは 1,073,741,824 の 2 バイト文字

XML

CLOB