标签:出现 ble 说明 bho server protocol generate ted code
因为有个业务场景需要访问客户DB2数据库的数据,我们使用的Oracle,百度一下是有方法的,本来以为很简单,没想到搞了一天,因为数据库版本都太老,使用的也少走了不少弯路,在此记录下来给需要的人借鉴。
我们客户使用的是DB2 V9.7,我需要自己先本地测试再去连接客户数据库。IBM官网已经不再提供DB2 V9.7,网上找了很久找到一个这个版本IBM.DB2.Express-C.9.7数据库.db2exc_970_WIN_x86,将就用。win10系统安装不了,我是虚拟机win7安装成功。
按步骤安装好DB2。Oracle连接DB2是通过ODBC然后创建dblink连接,而且DB2 9.7 最高只支持Oracle 11C连接。
解压并把驱动放到自己想安装到目录,进入到目录下的\clidriver\bin
路径里打开CMD
执行命令安装驱动
db2oreg1.exe -i
如果是powellshell则是
./db2oreg1.exe -i
安装成功后通过win7的搜索打开ODBC可以看到刚才已经安装的驱动,如下图
添加系统DSN
选择对应的驱动添加
添加ip、端口、数据库名称
测试连接是否成功
连接成功。
添加cfg配置文件,如果没有这个文件,在dblink连接时会报错:连接ORACLE到非Oracle系统时返回此信息:[IBM][CLI Driver] SQL1531N...
找到刚才安装odbc驱动的主目录下找到\clidriver\cfg
路径下新建一个db2dsdriver.cfg
配置文件,内容如下
<!-- db2dsdriver.cfg data source -->
<configuration>
<dsncollection>
<!-- alias=odbc数据源名称 其他自己依自己的情况填写 -->
<dsn alias="testdb2" name="test" host="localhost" port="50000">
<parameter name="UserID" value="***"/>
<parameter name="Password" value="***"/>
</dsn>
</dsncollection>
</configuration>
文件创建好后重启DB2,测试文件是否无误,打开CMD进入到驱动安装目录下的\clidriver\bin
# 停止
db2stop
# 启动
db2start
# 检查配置 后面的testdb2自己改成自己的数据源名称
db2cli validate -dsn testdb2
出现如下提示说明无误,不然请根据提示排查问题
[ Parameters used for the connection ]
Keywords Valid For Value
---------------------------------------------------------------------------
DATABASE CLI,.NET,ESQL test
HOSTNAME CLI,.NET,ESQL localhost
PORT CLI,.NET,ESQL 50000
USERID CLI,.NET ********
PASSWORD CLI,.NET ********
配置initdg4odbc.ora
找到Oracle安装目录下\product\11.2.0\dbhome_1\hs\admin
路径的initdg4odbc.ora
复制一份命名为inittestdb2.ora
,名称就用init+数据源名称.ora
。配置内容如下:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = testdb2 # 自己配置的odbc数据源名称
HS_FDS_TRACE_LEVEL = off # 是否开启日志记录 on off
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
配置listener.ora
找到Oracle安装目录下\product\11.2.0\dbhome_1\NETWORK\ADMIN
路径的listener.ora
文件打开,里面原来的配置不要动在标识后面添加一条配置。配置内容如下:
# listener.ora Network Configuration File: C:\**\**\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\**\**\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\**\**\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
# 在这里添加一条配置
(SID_DESC=
(SID_NAME=testdb2) # 这里改成自己配置的inittestdb2.ora文件里的名称
(ORACLE_HOME=C:\**\**\product\11.2.0\dbhome_1) # **号自己替换成自己的路径
(PROGRAM=dg4odbc)
)
# 这里结束
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\Administrator
配置tnsnames.ora
找到Oracle安装目录下\product\11.2.0\dbhome_1\NETWORK\ADMIN
路径的tnsnames.ora
文件打开,里面原来的配置不要动在标识后面添加一条配置。配置内容如下:
# tnsnames.ora Network Configuration File: C:\**\**\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
# 这里添加一条配置
testdb2 = # 名称可以自定义
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) # 不用修改
(CONNECT_DATA=(SID=testdb2)) # sid改成和listener.ora配置文件一样的sid名称
(HS=OK)
)
测试配置文件是否都正常
打开CMD依次执行如下指令重启Oracle监听服务,如果没有报错就是正常的
lsnrctl stop
lsnrctl start
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "testdb2" 包含 1 个实例。
实例 "testdb2", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
创建dblink
-- 参数依次为:dblink名称、用户名、密码、tnsnames.ora文件配置的服务名称
create database link "oradb2" connect to "user" identified by "pwd" using ‘testdb2‘;
测试连接
select * from dual@oradb2
查询到数据,大功告成。
自己整了好久才搞定,因为找资料很多都是不太一样的,所以记录下来给需要的人参考。
标签:出现 ble 说明 bho server protocol generate ted code
原文地址:https://www.cnblogs.com/yehaia1/p/13143381.html