

# IBM CLPPlus을 사용하여 Amazon RDS for Db2 DB 인스턴스에 연결
<a name="db2-connecting-with-ibm-clpplus-client"></a>

IBM CLPPlus와 같은 유틸리티를 사용하여 Amazon RDS for Db2 DB 인스턴스에 연결할 수 있습니다. 이 유틸리티는 IBM Data Server Runtime Client의 일부입니다. IBM Fix Central에서 클라이언트를** **다운로드하려면 IBM Support의 [IBM 데이터 서버 클라이언트 패키지 버전 11.5 Mod 8 수정 팩 0](https://www.ibm.com/support/pages/node/6830885)을 참조하세요.

**중요**  
데스크톱과 함께 macOS, Windows, Linux 등 그래픽 사용자 인터페이스를 지원하는 운영 체제에서 IBM CLPPlus를 실행하는 것이 좋습니다. 헤드리스 Linux를 실행하는 경우 CLPPlus 명령과 함께 switch **-nw**를 사용하세요.

**Topics**
+ [클라이언트 설치](#db2-connecting-ibm-clpplus-install-client)
+ [DB 인스턴스에 연결](#db2-connecting-ibm-clpplus-connect-db-instance)
+ [DB2 저장 프로시저에서 CLOB 데이터 검색](#db2-connecting-ibm-clpplus-retrieve-clob-data)

## 클라이언트 설치
<a name="db2-connecting-ibm-clpplus-install-client"></a>

Linux의 패키지를 다운로드한 후 클라이언트를 설치합니다.

**참고**  
AIX 또는 Windows에 클라이언트를 설치하려면 동일한 절차를 따르되, 운영 체제에 맞게 명령을 수정하세요.

**Linux에 클라이언트를 설치하려면**

1. 를 실행합니다..**`./db2_install`**

1. **`clientInstallDir/instance/db2icrt -s client` *instance\$1name***을 실행합니다. *instance\$1name*을 Linux에서 올바른 운영 체제 사용자로 바꿉니다. Linux에서 Db2 DB 인스턴스 이름은 운영 체제 사용자 이름에 연결됩니다.

   이 명령은 Linux에서 지정된 사용자의 홈 디렉터리에 **`sqllib`** 디렉터리를 만듭니다.

## DB 인스턴스에 연결
<a name="db2-connecting-ibm-clpplus-connect-db-instance"></a>

RDS for Db2 DB 인스턴스에 연결하려면 인스턴스의 DNS 이름과 포트 번호가 필요합니다. 찾는 방법에 대한 자세한 내용은 [엔드포인트 찾기](db2-finding-instance-endpoint.md) 섹션을 참조하세요. 또한 RDS for Db2 DB 인스턴스를 만들 때 정의한 데이터베이스 이름, 마스터 사용자 이름, 마스터 암호도 알아야 합니다. 찾는 방법에 대한 자세한 내용은 [DB 인스턴스 생성](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating) 섹션을 참조하세요.

**IBM CLPPlus를 사용하여 RDS for Db2 DB 인스턴스에 연결하려면**

1. 명령 구문을 검토합니다. 다음 예제에서 *clientDir*을 클라이언트가 설치된 위치로 바꿉니다.

   ```
   cd clientDir/bin
       ./clpplus -h
   ```

1. Db2 서버를 구성합니다. 다음 예제에서 *dsn\$1name*, *database\$1name*, *endpoint*, *port*를 RDS for Db2 DB 인스턴스의 DSN 이름, 데이터베이스 이름, 엔드포인트 및 포트로 대체합니다. 자세한 내용은 [Amazon RDS for Db2 DB 인스턴스의 엔드포인트 찾기](db2-finding-instance-endpoint.md) 섹션을 참조하세요.

   ```
   db2cli writecfg add -dsn dsn_name -database database_name -host endpoint -port port -parameter "Authentication=SERVER_ENCRYPT"
   ```

1. RDS for Db2 DB 인스턴스에 연결합니다. 다음 예제에서 *master\$1username* 및 *dsn\$1name*을 마스터 사용자 이름과 DSN 이름으로 대체합니다.

   ```
   ./clpplus -nw master_username@dsn_name
   ```

1. Java Shell 창이 열립니다. RDS for Db2 DB 인스턴스의 마스터 암호를 입력합니다.
**참고**  
Java Shell 창이 열리지 않는 경우 `./clpplus -nw`를 실행하여 동일한 명령줄 창을 사용합니다.

   ```
   Enter password: *********
   ```

   연결이 이루어지면 다음 예제와 비슷한 출력이 생성됩니다.

   ```
   Database Connection Information :
   ---------------------------------
   Hostname = database-1.abcdefghij.us-east-1.rds.amazonaws.com
   Database server = DB2/LINUXX8664  SQL110590
   SQL authorization ID = admin
   Local database alias = DB2DB
   Port = 50000
   ```

1. 쿼리를 실행하고 결과를 확인합니다. 다음 예제는 생성한 데이터베이스를 선택하는 SQL 문을 보여줍니다.

   ```
   SQL > select current server from sysibm.dual;
   ```

   다음 예제와 비슷한 출력이 생성됩니다.

   ```
   1
       --------------------
       DB2DB
       SQL>
   ```

## DB2 저장 프로시저에서 CLOB 데이터 검색
<a name="db2-connecting-ibm-clpplus-retrieve-clob-data"></a>

rdsadmin.db2pd\$1command와 같은 저장 프로시저는 CLOB 열에 결과를 반환하며, 이 열은 최대 2GB의 데이터를 지원합니다. 그러나 DB2 CLP는 CLOB 출력을 8KB(8192바이트)로 제한하여 이 임계값을 초과하는 모든 데이터를 잘라냅니다. 전체 출력을 검색하려면 CLPPLUS를 대신 사용합니다.

1. 태스크 ID(task\$1id) 가져오기 

   ```
   db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params,
   cast(task_output as varchar(500)) as task_output, CREATED_AT, LAST_UPDATED_AT from table(rdsadmin.get_task_status(null,null,null))"
   ```

1. CLPPLUS 명령 실행

   task\$1id를 가져온 후 Unix 프롬프트에서 다음 명령을 실행합니다(TASK\$1ID를 실제 숫자 작업 ID로 대체).

   ```
   $ (echo "select task_output from table(rdsadmin.get_task_status(task_id,null,null));" ; echo "disconnect;" ; echo "exit;") | clpplus -nw -silent masteruser/MasterUserPassword@hostname:port_num/rdsadmin
   ```