我正在尝试使用在Windows远程主机上运行的HammerDB v3.1为DB2 10.5 LUW生成一些数据。无法在与 DB2 相同的主机上运行 HammerDB。根据 HammerDB 文档,我需要为 ODBC 和 CLI 设置 IBM 数据服务器驱动程序。
我做了什么:
-
在HammerDB主机上下载并设置驱动程序 - v10.5fp10_ntx64_odbc_cli.zip如此处所述
-
配置 db2dsdriver .cfg 文件
<configuration>
<dsncollection>
<dsn alias="TPCC" name="<my database name>" host="<my host name>" port="50000"/>
<!-- Long aliases are supported -->
<dsn alias="longaliasname2" name="name2" host="server2.net1.com" port="55551">
<parameter name="Authentication" value="SERVER_ENCRYPT"/>
</dsn>
</dsncollection>
<databases>
<database name="<my database name>" host="<my host name>" port="50000">
<parameter name="CurrentSchema" value="OWNER1"/>
.......
- 添加环境变量DB2DSDRIVER_CFG_PATH
set DB2DSDRIVER_CFG_PATH=C:ProgramDataIBMDB2C_IBMDB2_CLIDRIVER_clidrivercfg
- 运行HammerDB GUI,尝试构建模式并接收
Error in Virtual User 1: [IBM][CLI Driver][DB2/LINUXX8664] SQL0206N "GLOBAL_VAR1" is not valid in the context where it is used. SQLSTATE=42703```
此错误是因为 db2dsdriver .cfg 在 Db2 客户机节点上具有过多的 DSN 信息。
要进行恢复,可以重命名并重新创建 db2dsdriver.cfg/db2cli.ini 文件,也可以编辑 db2dsdriver.cfg 文件并除去 DSN/数据库出现的以下节(作为预防措施,请采取备份(:
<sessionglobalvariables>
<parameter name="global_var1" value="abc"/>
</sessionglobalvariables>
我通常会丢弃默认的 db2dsdriver.cfg/db2cli.ini,并使用脚本来填充它们。这可以通过使用命令行工具"db2cli"来实现,该工具具有各种命令行参数,允许您为 DSN 和数据库编写 cfg 文件节。文档在这里。