使用 IBM Db2 CLP 连接到 RDS for Db2 数据库实例 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

您可以使用命令行实用程序(如 IBM Db2 CLP)连接到 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

术语

以下术语有助于解释连接到 RDS for Db2 数据库实例时使用的命令。

catalog tcpip node

此命令将远程数据库节点注册到本地 Db2 客户端,这样客户端应用程序就可以访问该节点。要对节点进行编目,您需要提供诸如服务器的主机名、端口号和通信协议之类的信息。然后,编目的节点表示一个或多个远程数据库所在的目标服务器。有关更多信息,请参阅 IBM Db2 文档中的 CATALOG TCPIP/TCPIP4/TCPIP6 NODE 命令

catalog database

此命令将远程数据库注册到本地 Db2 客户端,这样客户端应用程序就可以访问该数据库。要对数据库进行编目,您需要提供诸如数据库别名、数据库所在的节点以及连接数据库所需的身份验证类型之类的信息。有关更多信息,请参阅 IBM Db2 文档中的 CATALOG DATABASE 命令

安装客户端

downloading the package for Linux之后,使用根或管理员权限安装客户端。

注意

要在 AIX 或 Windows 上安装客户端,请按照相同的步骤操作,但要修改适用于您的操作系统的命令。

在 Linux 上安装客户端
  1. 运行 ./db2_install -f sysreq 并选择 yes 以接受许可证。

  2. 选择安装客户端的位置。

  3. 运行 clientInstallDir/instance/db2icrt -s client instance_name。将 instance_name 替换为 Linux 上有效的操作系统用户。在 Linux 中,Db2 数据库实例名称与操作系统的用户名相关联。

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

连接数据库实例

要连接到 RDS for Db2 数据库实例,您需要该实例的 DNS 名称和端口号。有关查找它们的信息,请参阅查找终端节点。您还需要知道您在创建 RDS for Db2 数据库实例时定义的数据库名称、主用户名和主密码。有关查找它们的更多信息,请参阅创建数据库实例

使用 IBM Db2 CLP 连接到 RDS for Db2 数据库实例
  1. 使用您在 IBM Db2 CLP 客户端安装期间指定的用户名登录。

  2. 对 RDS for Db2 数据库实例进行编目。在以下示例中,将 node_namedns_nameport 替换为本地目录中节点的名称、数据库实例的 DNS 名称以及端口号。

    db2 catalog TCPIP node node_name remote dns_name server port

    示例

    db2 catalog TCPIP node remnode remote database-1.123456789012.us-east-1.amazonaws.com server 50000
  3. rdsadmin 数据库和您的数据库进行编目。这将允许您连接到 rdsadmin 数据库以使用 Amazon RDS 存储过程执行一些管理任务。有关更多信息,请参阅管理您的 RDS for Db2 数据库实例

    在以下示例中,将 database_aliasnode_namedatabase_name 替换为该数据库的别名、在上一步中定义的节点的名称以及数据库的名称。server_encrypt 通过网络加密您的用户名和密码。

    db2 catalog database rdsadmin [ as database_alias ] at node node_name authentication server_encrypt db2 catalog database database_name [ as database_alias ] at node node_name authentication server_encrypt

    示例

    db2 catalog database rdsadmin at node remnode authentication server_encrypt db2 catalog database testdb as rdsdb2 at node remnode authentication server_encrypt
  4. 连接到您的 RDS for Db2 数据库。在以下示例中,将 rds_database_aliasmaster_usernamemaster_password 替换为 RDS for Db2 数据库实例的数据库名称、主用户名和主密码。

    db2 connect to rds_database_alias user master_username using master_password

    此命令生成类似于以下示例的输出:

    Database Connection Information Database server = DB2/LINUXX8664 11.5.9.0 SQL authorization ID = ADMIN Local database alias = TESTDB
  5. 运行查询并查看结果。以下示例显示了一条 SQL 语句,该语句选择了您创建的数据库。

    db2 "select current server from sysibm.dual"

    此命令生成类似于以下示例的输出:

    1 ------------------ TESTDB 1 record(s) selected.

排除与 RDS for Db2 数据库实例的连接故障

如果您收到以下 NULLID 错误,则通常表示您的客户端和 RDS for Db2 服务器版本不匹配。有关支持的 Db2 客户端版本,请参阅 IBM Db2 文档中的 Supported combinations of clients, drivers and server levels

db2 "select * from syscat.tables" SQL0805N Package "NULLID.SQLC2O29 0X4141414141454A69" was not found. SQLSTATE=51002

收到此错误后,必须将旧版 Db2 客户端中的软件包绑定到 RDS for Db2 支持的 Db2 服务器版本。

将旧版 Db2 客户端中的软件包绑定到较新的 Db2 服务器
  1. 在客户端计算机上找到绑定文件。通常,这些文件位于 Db2 客户端安装路径的 bnd 目录中,扩展名为 .bnd

  2. 连接到 Db2 服务器。在以下示例中,将 database_name 替换为 Db2 服务器的名称。用您的信息替换 master_usernamemaster_password。此用户拥有 DBADM 权限。

    db2 connect to database_name user master_username using master_password
  3. 运行 bind 命令以绑定这些软件包。

    1. 导航到客户端计算机上存在绑定文件的目录。

    2. 对每个文件运行 bind 命令。

      以下选项为必填:

      • blocking all – 在单个数据库请求中绑定该绑定文件中的所有软件包。

      • grant public – 授予 public 执行软件包的权限。

      • sqlerror continue – 指定即使发生错误,bind 过程仍会继续。

      有关 bind 命令的更多信息,请参阅 IBM Db2 文档中的 BIND 命令

  4. 通过查询 syscat.package 目录视图或检查 bind 命令后返回的消息,验证绑定是否成功。

有关更多信息,请参阅 IBM 支持中的 DB2 v11.5 Bind File and Package Name List