确保您能够正确配置 Amazon RDS for Db2 实例,并获得与本地系统相当或更佳的性能,您可以使用 HammerDB。通过使用此工具,您可以生成 OLTP 类型的工作负载,并进行 TPCC 测试,从而能够比较本地 Db2 系统与 Amazon RDS for Db2 的性能。使用 HammerDB,您可以评估不同实例类型、网络速率以及 Amazon Elastic Block Storage (Amazon EBS) 的 IOPS 和吞吐量等特性如何影响资料库性能。这一方法可以帮助您在将 Db2 工作负载迁移至 AWS 云端时做出明智的决策并确保在 RDS for Db2 环境中实现最佳性能。
本文将指导您如何在 RDS for Db2 上执行 HammerDB 测试。我们提供了使用 AWS CloudFormation 模板创建 RDS for Db2 实例、设置 Db2 客户端和配置 HammerDB 的逐步过程。您将学会如何执行测试并解释结果,以正确配置您的 RDS for Db2 实例。
解决方案的架构说明了如何使用 CloudFormation 模板创建 RDS for Db2 系统,并创建带有 Db2 客户端的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,以及如何使用 HammerDB 软件运行性能测试。
以下组件在本解决方案中使用:
组件描述Amazon RDS for Db2由 Amazon 提供的受管 IBM Db2 环境。Amazon EC2 上的 Db2 客户端我们需要一个客户端来连接 RDS for Db2。解决方案显示在 Amazon EC2 上安装 Db2 客户端以连接 RDS for Db2。HammerDBHammerDB 生成不同类型 TPCC 工作负载的数据集,通过变化数据库的大小和用户数来生成工作负载并识别出性能瓶颈。RDP 客户端您可以使用远程桌面协议 (RDP) 客户端连接到在 Windows 或 Ubuntu 上运行的 Db2 客户端,安装对 XRDP 的支持。以下图示说明了实施该解决方案的架构。
该解决方案包含以下步骤:
使用 AWS CloudFormation 创建 RDS for Db2 实例配置 RDS for Db2 多可用区域的备用数据库使用 CloudFormation 为 Db2 客户端创建 EC2 实例使用 Amazon EC2 Db2 客户端连接到 RDS for Db2配置 Db2 客户端以连接 RDS for Db2 实例在 Amazon EC2 中使用 Db2 客户端配置 HammerDB运行 HammerDB 测试要使本解决方案正常运行,您必须具备以下条件:
条件描述IBM Db2 许可证您可以选择自带许可证BYOL,需要指定 IBM 客户 ID 和 IBM 站点 ID 以创建 RDS for Db2 实例。 也可以在 AWS Marketplace 订阅以获得标准版和高级版的按小时使用许可证。IBM 帐号您可以创建免费的 IBM 帐号 下载免费的 IBM Db2 客户端 以连接 RDS for Db2。AWS 帐号您需要一个 AWS 帐号Amazon EC2 密钥对您需要创建公钥/私钥以从您的本地计算机连接到 Amazon EC2。您可以建立新密钥对或使用您的 AWS 帐号中的现有密钥。RDP 客户端程序该程序可基于 Apple MacOS 或 Microsoft Windows。注意:使用本解决方案将产生创建 RDS for Db2 实例的费用。不过,您可以利用 Amazon EC2 的免费层创建 Db2 客户端。您可以使用 AWS 价格计算器 来估算费用。
我们将带您通过使用 CloudFormation 模板创建 RDS for Db2 实例和 EC2 实例。您可以 下载并预览 CloudFormation 模板。
您可以在下载的 CloudFormation 模板中修改或添加任何其他参数,例如 VPC CIDR。您可以通过将修订的 CloudFormation 模板上传到 Amazon Simple Storage Service (Amazon S3) 存储桶或直接在 AWS 管理控制台磁碟上传修订的模板来使用您的修订版模板。
要使用预配置设置启动 CloudFormation 模板,选择 Launch Stack。
运行 CloudFormation 模板时,将要求输入几个参数。
对于 ClientIpCidr,访问 whatismyipaddresscom 找到您的 IP 地址,并使用格式 xxxxxxxxxxxx/32 输入该 IP。此 CIDR 将限制 Amazon EC2 只允许来自您的 IP 地址的访问。对于 DBInstanceIdentifier,请使用 db2tpcc 作为示例以保持脚本一致。如果您使用其他名称,则需要修改脚本以适应。对于 Db2DbName,请输入大写字母的数据库名称或使用默认名称。对于 Db2ServicePort,输入数据库服务端口或使用默认端口,例如 50001。对于 IbmCustomerId,输入您的 IBM 客户 ID。对于 IbmSiteId,输入您的 IBM 站点 ID。对于 MasterUsername,输入您 Db2 数据库的主要用户名或默认用户名,例如 db2inst1。对于 MasterUserPassword,输入主要用户名的密码。对于 SshKeyPairName,选择您的 Amazon EC2 密钥对。创建堆栈大约需要 15 分钟。当堆栈创建完成后,您可以在 Outputs 标签上查看输出值。输出值对于每个用户可能会与以下截图显示的值有所不同。
您可以在 Amazon RDS 控制台上检查 RDS for Db2 的资源。选择导航窗格中的 Databases,然后选择 AWS CloudFormation 创建的数据库标识符。
在 Connectivity amp security 标签中,您可以找到与连接相关的信息,如端点和数据库中的可用端口。您还可以识别出网络相关信息,如 VPC、可用区和安全组。

在 Configuration 标签中,您可以找到数据库配置的信息,包括数据库实例 ID 和引擎版本等详细信息。此外,您还可以验证分配给 RDS for Db2 实例的 vCPU 和 RAM 信息。
加速器下载永久免费版当您查看参数组详细信息时,可以查看各种 Db2 参数设置。您还可以将参数值更改为您所需的值。
在本节中,我们将逐步介绍如何在 Amazon EC2 中设置 Db2 客户端。
CloudFormation 模板创建了一个运行 Ubuntu Linux 的 EC2 实例。在堆栈的 Outputs 标签中,您可以查看访问信息。创建的 Ubuntu Linux 实例支持 RDP 访问。当通过 CloudFormation 模板配置时,还设置了允许用户使用 3389 端口登录。您可以像连接到 Windows 一样进行连接。
使用 CloudFormation 堆栈输出的连接信息通过 SSH 命令进行登录。每个用户的 IP 地址可能不同。
要使用 SSH 命令登录,您需要准备私钥文件并在计算机上将文件权限设置为 400。
bashchmod 400 ltYour Key Pairgtpem
然后,您可以以 Ubuntu 用户身份登录
bashssh i ltYour Key Pairgtpem ubuntu@ltYour instances public IP addressgt
登录为 Ubuntu 用户后,使用以下命令以 root 用户登录
bashsudo i
访问 IBM 支持页面 下载 IBM 数据服务客户端包。如果您有 IBM 帐号,这些客户端包可免费下载。在撰写本文章时,最新版本的下载是 IBM 数据服务客户端包版本 115 Mod 9 修补包 0。我们建议下载 Linuxx64 的驱动程序。
您可以选择使用 FTPS/SFTP、HTTPS 或下载导向进行 Db2 客户端驱动程序的下载。在这些选项中,您可以选择使用 FTPS/SFTP 选项进行下载。
为了使用 HammerDB 的 GUI,您需要配置 HammerDB 和 Db2 客户端为 root 用户。因此,您需要使用 sudo i 命令登录来下载和安装 Db2 客户端
bashsudo i
sftp @delivery04blddheibmcom@delivery04blddheibmcoms 密码
sftpgt mget gzFetching /v1159linuxx64clienttargz to v1159linuxx64clienttargz
解压 gz 文件以进行安装
bashtar xvzf v1159linuxx64clienttargz
使用以下命令安装客户端。您将被提示 [yes/no] 两次。每次输入 yes 以继续。
bashcd client/db2install f sysreq
在这部分中,我们将逐步介绍如何使用 Db2 客户端连接到 RDS for Db2。
为 Ubuntu 用户创建一个 db2profile。以 root 用户身份登录,导航到 Db2 客户端安装目录。使用以下命令将 ubuntu 注册为 Db2 用户
bashcd /opt/ibm/db2/V115/instance/db2icrt u ubuntu ubuntu
输出应类似于以下内容。
bash # /db2icrt u ubuntu ubuntu DBI1446I The db2icrt command is running DB2 installation is being initialized
将以下配置添加到 root 的 profile 文件末尾。这样的处理将配置中的个人资料添加到 root 的 profile 文件中,以便 root 用户也可以使用 db2profile 配置。
bashcat ltlt EOF gtgt /profile
if [ f /home/ubuntu/sqllib/db2profile ] then /home/ubuntu/sqllib/db2profilefiEOF
在登录为 root 用户的情况下,运行 profile 文件以载入其设置
bash /profile
运行 db2 命令以验证 Db2 客户端是否在 root 操作系统用户下正常工作bash db2
以下是预期的输出结果bash (c) Copyright IBM Corporation 19932007 Command Line Processor for Db2 Client 11590