

# 使用 IBM CLPPlus 连接到 Amazon RDS for Db2 数据库实例
<a name="db2-connecting-with-ibm-clpplus-client"></a>

您可以使用诸如 IBM CLPPlus 之类的实用程序连接到 Amazon RDS for Db2 数据库实例。此实用程序是 IBM Data Server Runtime Client 的一部分。要从 IBM Fix Central 中下载客户端****，请参阅 IBM 支持中的 [IBM Data Server Client Packages Version 11.5 Mod 8 Fix Pack 0](https://www.ibm.com/support/pages/node/6830885)。

**重要**  
我们建议您在支持图形用户界面以及桌面的操作系统上运行 IBM CLPPlus，例如 macOS、Windows 或 Linux。如果运行无头 Linux，请将开关 **-nw** 与 CLPPlus 命令结合使用。

**Topics**
+ [安装客户端](#db2-connecting-ibm-clpplus-install-client)
+ [连接数据库实例](#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 数据库实例名称与操作系统的用户名相关联。

   此命令在 Linux 上指定用户的主目录中创建 **`sqllib`** 目录。

## 连接数据库实例
<a name="db2-connecting-ibm-clpplus-connect-db-instance"></a>

要连接到 RDS for Db2 数据库实例，您需要该实例的 DNS 名称和端口号。有关查找它们的信息，请参阅[查找终端节点](db2-finding-instance-endpoint.md)。您还需要知道您在创建 RDS for Db2 数据库实例时定义的数据库名称、主用户名和主密码。有关查找它们的更多信息，请参阅[创建数据库实例](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)。

**使用 IBM CLPPlus 连接到 RDS for Db2 数据库实例**

1. 查看命令语法。在以下示例中，将 *clientDir* 替换为安装客户端的位置。

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

1. 配置您的 Db2 服务器。在以下示例中，将 *dsn\$1name*、*database\$1name*、*endpoint* 和 *port* 替换为 RDS for Db2 数据库实例的 DSN 名称、数据库名称、端点和端口。有关更多信息，请参阅 [查找 Amazon RDS for Db2 数据库实例的端点](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 数据库实例。在以下示例中，将 *master\$1username* 和 *dsn\$1name* 替换为主用户名和 DSN 名称。

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

1. 此时会打开一个 Java Shell 窗口。输入 RDS for Db2 数据库实例的主密码。
**注意**  
如果 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 列返回结果，这些列最多支持 2 GB 的数据。但是，DB2 CLP 将 CLOB 输出限制为 8 KB（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
   ```