

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

# IBM Db2 for Linux、Unix、Windows、Amazon RDS データベース (Db2 LUW) を のソースとして使用する AWS DMS
<a name="CHAP_Source.DB2"></a>

 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](CHAP_Introduction.Sources.md)。

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

は、IBM Db2 ソースデータベースからデータ AWS DMS を読み取るときに、Db2 バージョン 9.7 以降のデフォルトの分離レベル CURSOR STABILITY (CS) を使用します。詳細については、「[IBM Db2 for Linux, UNIX and Windows](https://www.ibm.com/docs/en/db2/12.1.0)」のドキュメントを参照してください。

## のソースとして Db2 LUW を使用する場合の前提条件 AWS DMS
<a name="CHAP_Source.DB2.Prerequisites"></a>

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

変更データキャプチャ (CDC) とも呼ばれる継続的なレプリケーションを有効にするには、次を実行します。
+ データベースを復旧可能に設定します。そのためには、変更をキャプチャ AWS DMS する必要があります。データベース設定パラメータの `LOGARCHMETH1` と `LOGARCHMETH2` のどちらかまたは両方が `ON` に設定されている場合、データベースは復元可能です。

  データベースが復旧可能な場合、 AWS DMS は`ARCHIVE LOG`必要に応じて Db2 にアクセスできます。
+ DB2 トランザクションログが使用可能であり、処理に十分な保持期間があることを確認します AWS DMS。
+ DB2 ではトランザクションログレコードを抽出するのに `SYSADM` 認証または `DBADM` 認証が必要です。ユーザーアカウントに次のアクセス権限を付与します。
  + `SYSADM`、または `DBADM`
  + `DATAACCESS`
+ **フルロードのみ**のタスクの場合、DMS ユーザーアカウントには次のアクセス許可が必要です。

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_SYS_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DB2_CF TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO USER <DMS_USER>;
  
  -- Use the following queries to generate the grants, and then execute the resulting statements.
  SELECT 'GRANT SELECT ON SYSCAT.' || RTRIM(TABNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SYSCAT' AND TYPE = 'V';
  SELECT 'GRANT SELECT ON SYSIBM.' || RTRIM(TABNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SYSIBM' AND TYPE in ('T', 'V');
  SELECT 'GRANT EXECUTE ON PACKAGE NULLID.' || RTRIM(PKGNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.PACKAGES WHERE PKGSCHEMA = 'NULLID';
  SELECT 'GRANT EXECUTE ON PROCEDURE SYSIBM.' || RTRIM(PROCNAME) || ' TO USER <DMS_USER>;' FROM SYSCAT.PROCEDURES WHERE PROCSCHEMA = 'SYSIBM';
  
  -- For all the source tables grant the select permission
  GRANT SELECT ON <SCHEMA>.<TABLE> TO USER <DMS_USER>;
  ```
+ ソースとして 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 ストアドプロシージャリファレンス](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-stored-procedures.html)」を参照してください。
+ DB2 固有の移行前評価を使用する場合、次の権限を付与します。

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.SCHEMATA TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.COLUMNS TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.TABLES TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO <DMS_USER>;
  GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO USER <DMS_USER>;
  ```

## のソースとして Db2 LUW を使用する場合の制限 AWS DMS
<a name="CHAP_Source.DB2.Limitations"></a>

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]( https://www.ibm.com/support/pages/what-can-i-do-if-i-want-change-pagesize-db2-tablespaces )」を参照してください。
+ 継続的レプリケーションの場合、DMS は DB2 LOAD ユーティリティによってページレベルでロードされたデータの移行をサポートしていません。代わりに、SQL 挿入を使用する IMPORT ユーティリティを使用します。詳細については、「[インポートユーティリティとロードユーティリティの違い]( https://www.ibm.com/docs/en/db2/11.1?topic=utilities-differences-between-import-load-utility)」をご参照ください。
+ レプリケーションタスクの実行中、DMS が CREATE TABLE DDL をキャプチャするのは、テーブルが DATA CAPTURE CHANGE 属性で作成された場合のみです。
+ Db2 データベースパーティション機能 (DPF) を使用する場合、DMS には次の制限があります。
  + DMS は、DPF 環境内の Db2 ノード間でトランザクションを調整できません。これは、IBM DB2READLOG API インターフェイス内の制約によるものです。DPF では、DB2 のデータのパーティション化の方法に応じて、トランザクションが複数の Db2 ノードにまたがる場合があります。その結果、DMS ソリューションは各 Db2 ノードからトランザクションを個別にキャプチャする必要があります。
  + DMS は、複数の DMS ソースエンドポイントで `connectNode` を `1` に設定することで、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](https://www.ibm.com/support/pages/db2-finding-lsn-or-lri-value-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;
  ```

AWS DMS は、次の DB2 システムスキーマからのテーブルの移行をサポートしていません。
+ `SYSIBM`
+ `SYSIBMADM`
+ `SYSCAT`
+ `SYSSTAT`
+ `SYSPROC`
+ `SYSFUN`
+ `SYSPUBLIC`
+ `SYSTOOLS`

これらのスキーマには、メタデータを取得できない DB2 システムカタログテーブルが含まれています AWS DMS。テーブルマッピング選択ルールにこれらのスキーマが含まれている場合、例えば、スキーマ名`%`に などのワイルドカードパターンを使用すると、移行タスクが失敗する可能性があります。

この問題を回避するには、テーブルマッピングルールで次のいずれかの方法を使用します。
+ `include` ルールで移行するユーザースキーマのみを指定します。
+ `exclude` ルールの前に DB2 システムスキーマの明示的な`include`ルールを追加します。

次の例は、ワイルドカードパターンを使用して DB2 システムスキーマを除外し、残りのすべてのユーザースキーマを含めるテーブルマッピングルールを示しています。

```
	{
	  "rules": [
	    {
	      "rule-type": "selection",
	      "rule-id": "1",
	      "rule-name": "exclude-db2-system-schemas",
	      "object-locator": {
	        "schema-name": "SYS%",
	        "table-name": "%"
	      },
	      "rule-action": "exclude"
	    },
	    {
	      "rule-type": "selection",
	      "rule-id": "2",
	      "rule-name": "include-user-schemas",
	      "object-locator": {
	        "schema-name": "%",
	        "table-name": "%"
	      },
	      "rule-action": "include"
	    }
	  ]
	}
```

**注: ** テーブルマッピングルールでは、`exclude`ルールは`include`ルールの前に評価されます。この例では、`exclude`ルールは SYS で始まるスキーマ内のテーブルを選択 AWS DMS できないようにし、`include`ルールは残りのスキーマ内のすべてのテーブルを選択します。

## のソースとして Db2 LUW を使用する場合のエンドポイント設定 AWS DMS
<a name="CHAP_Source.DB2.ConnectionSettings"></a>

 AWS DMS コンソールを使用してソースエンドポイントを作成するとき、または で `create-endpoint` コマンドを使用して[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html)、

`--ibm-db2-settings {{'{"EndpointSetting1": "value1","EndpointSetting2": "value2"}'}}`

JSON 構文。

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


| 名前の設定 | 説明 | 
| --- | --- | 
| `CurrentLsn` | 継続的なレプリケーション (CDC) では、`CurrentLsn` を使用してレプリケーションを開始するログシーケンス番号 (LSN) を指定します。 | 
| `MaxKBytesPerRead` | 読み取りあたりの最大バイト数。NUMBER 値です。デフォルトは 64 KB です。 | 
| `SetDataCaptureChanges` | 継続的なレプリケーション (CDC) を BOOLEAN 値として有効にします。デフォルトは true です。 | 

## のソースとして Db2 LUW を使用する場合の追加の接続属性 (ECAs) AWS DMS
<a name="CHAP_Source.DB2.ConnectionAttrib"></a>

追加接続属性 (ECAs) は、 AWS DMS コンソールを使用してソースエンドポイントを作成するとき、または で `create-endpoint` コマンドを使用して[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html)、

`--extra-connection-attributes {{'ECAname1=value1;ECAname2=value2;'}}`

次の表は、Db2 LUW をソースとして使用できる ECAs を示しています。


| 属性名 | 説明 | 
| --- | --- | 
| `ConnectionTimeout` | この ECA を使用して、Db2 LUW エンドポイントのエンドポイント接続タイムアウトを秒単位で設定します。デフォルト値は 10 秒です。<br />例: `ConnectionTimeout=30;` | 
| `executeTimeout` | DB2 LUW エンドポイントのステートメント (クエリ) タイムアウトを秒単位で設定する追加の接続属性。デフォルト値は 60 秒です。<br />例: `executeTimeout=120;` | 
| `StartFromContext` | 継続的レプリケーション (CDC) の場合は、`StartFromContext` を使用して、レプリケーションのスタート位置からログの下限を指定します。`StartFromContext` は異なる形式の値を受け入れます。有効な値を次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DB2.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DB2.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DB2.html)<br />ログファイルの LRI/LSN 範囲を特定するには、次の例に示すように `db2flsn` コマンドを実行します。<pre>db2flsn -db {{SAMPLE}} -lrirange 2</pre><br />この例の出力は次のようになります。<pre><br />S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to <br />000000000000000100000000000022CC000000000004FB13</pre><br />その出力では、ログファイルは S0000002.LOG であり、**StartFromContext** LRI 値は、範囲の末尾にある 34 バイトです。<pre>0100000000000022CC000000000004FB13</pre> | 

## IBM Db2 LUW のソースデータ型
<a name="CHAP_Source.DB2.DataTypes"></a>

のソースとして Db2 LUW を使用するデータ移行は、ほとんどの Db2 LUW データ型 AWS DMS をサポートします。次の表は、 の使用時にサポートされる Db2 LUW ソースデータ型 AWS DMS と AWS DMS 、データ型からのデフォルトのマッピングを示しています。Db2 LUW データ型の詳細については、「[Db2 LUW のドキュメント](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008483.html)」をご参照ください。

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

 AWS DMS データ型の詳細については、「」を参照してください[AWS Database Migration Service のデータ型](CHAP_Reference.DataTypes.md)。


|  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<br />最大長は 2,147,483,647 バイト | 
| CLOB (n) | CLOB<br />最大長は 2,147,483,647 バイト | 
| DBCLOB (n) | CLOB<br />最大サイズは 1,073,741,824 の 2 バイト文字 | 
| XML | CLOB | 