

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Linux, Unix, Windows 및 Amazon RDS 데이터베이스(Db2 LUW)용 IBM Db2를의 소스로 사용 AWS DMS
<a name="CHAP_Source.DB2"></a>

 AWS Database Migration Service ()를 사용하여 Linux, Unix, Windows 및 Amazon RDS용 IBM Db2(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 및 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`으로 설정되어 있어야 데이터베이스를 복구할 수 있습니다.

  데이터베이스를 복구할 수 있는 경우는 필요한 `ARCHIVE LOG` 경우 Db2에 액세스할 AWS DMS 수 있습니다.
+ 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 사용 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-stored-procedures.html)의 *Amazon RDS for Db2 저장 프로시저 참조*를 참조하세요.
+ 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) 테이블에 대한 업데이트를 수행할 때 각 업데이트는 AWS DMS 콘솔에 INSERT \$1 DELETE로 표시됩니다.
+ 작업 설정 **복제에 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 유틸리티를 사용하세요. 자세한 내용은 [ differences between the import and load utilities]( https://www.ibm.com/docs/en/db2/11.1?topic=utilities-differences-between-import-load-utility)를 참조하세요.
+ 복제 작업이 실행되는 동안 DMS는 테이블이 DATA CAPTURE CHANGE 속성으로 생성된 경우에만 CREATE TABLE DDL을 캡처합니다.
+ DMS는 Db2 데이터베이스 파티션 기능(DPF)을 사용할 때 다음과 같은 제한 사항이 있습니다.
  + 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 노드당 하나의 작업을 실행하는 것이 좋습니다. 복제 시작점을 결정하는 방법에 대한 자세한 내용은 *IBM 지원 설명서*의 [ 복제 시작을 위한 LSN 또는 LRI 값 찾기](https://www.ibm.com/support/pages/db2-finding-lsn-or-lri-value-replication-start)를 참조하세요.
+ 지속적 복제(CDC)의 경우 특정 타임스탬프에서 복제를 시작하려면 `StartFromContext` 추가 연결 속성을 필수 타임스탬프로 설정해야 합니다.
+ 현재 DMS는 데이터베이스 솔루션을 확장하는 데 사용할 수 있는 DB2 LUW의 확장인 Db2 PureScale 기능을 지원하지 않습니다.
+ `DATA CAPTURE CHANGES` 테이블 옵션은 DB2 데이터 복제 프로세스의 중요한 사전 조건입니다. 테이블을 생성할 때이 옵션을 활성화하지 않으면 데이터가 누락될 수 있습니다. 특히 CDC(Change Data Capture)의 경우 이전 시작점에서 시작된 복제 작업만 해당됩니다. AWS DMS 는 CDC 또는 FULL\$1CDC 작업을 다시 시작할 때 기본적으로이 속성을 활성화합니다. 그러나 작업 재시작 전에 소스 데이터베이스에서 변경한 내용은 누락될 수 있습니다.

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

## 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 값). 기본값은 64KB입니다.  | 
|  `SetDataCaptureChanges`  |  부울 값으로 지속적 복제(CDC)를 활성화합니다. 기본값은 true입니다.  | 

## Db2 LUW를의 소스로 사용할 때 추가 연결 속성(ECAs) AWS DMS
<a name="CHAP_Source.DB2.ConnectionAttrib"></a>

 AWS DMS 콘솔을 사용하거나에서 `create-endpoint` 명령을 사용하여 소스 엔드포인트를 생성할 때 추가 연결 속성(ECAs)을와 [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초입니다. 예시: `ConnectionTimeout=30;`  | 
|  `executeTimeout`  |  DB2 LUW 엔드포인트에 대한 문(쿼리) 제한 시간을 초 단위로 설정하는 추가 연결 속성입니다. 기본값은 60초입니다. 예시: `executeTimeout=120;`  | 
|  `StartFromContext`  |  지속적 복제(CDC)의 경우, `StartFromContext`를 사용하여 복제가 시작될 로그 하한선을 지정합니다. `StartFromContext`는 다양한 형식의 값을 허용합니다. 유효한 값으로는 다음이 포함됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Source.DB2.html) 로그 파일의 LRI/LSN 범위를 확인하려면 다음 예제와 같이 `db2flsn` 명령을 실행합니다. <pre>db2flsn -db SAMPLE -lrirange 2</pre> 예제의 출력은 다음과 비슷합니다. <pre><br />S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to <br />000000000000000100000000000022CC000000000004FB13</pre> 이 출력에서 로그 파일은 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)  |  길이가 0보다 크고 127 이하인 2바이트 문자 고정 길이 그래픽 문자열의 경우, WSTRING  | 
|  VARGRAPHIC (n)  |  길이가 0보다 크고 16,352 이하인 2바이트 문자 가변 길이 그래픽 문자열의 경우, WSTRING  | 
|  LONG VARGRAPHIC (n)  |  길이가 0보다 크고 16,352 이하인 2바이트 문자 가변 길이 그래픽 문자열의 경우, CLOB  | 
|  CHARACTER (n)  |  길이가 0보다 크고 255 이하인 2바이트 문자 고정 길이 문자열의 경우, STRING  | 
|  VARCHAR (n)  |  길이가 0보다 크고 32,704 이하인 2바이트 문자 가변 길이 문자열의 경우, STRING  | 
|  LONG VARCHAR (n)  |  길이가 0보다 크고 32,704 이하인 2바이트 문자 가변 길이 문자열의 경우, CLOB  | 
|  CHAR (n) FOR BIT DATA  |  BYTES  | 
|  VARCHAR (n) FOR BIT DATA  |  BYTES  | 
|  LONG VARCHAR FOR BIT DATA  |  BYTES  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  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  | 