Linux系统中使用oracle透明网关连接DB2数据库
服务器1 os: AIX 5.3 ip: 192.168.0.1 db: oracle 11gR2服务器2: os: AIX IP: 192.168.0.5 db: DB2 v9.7主要目的: 通过在服务器1中构建透明网关,实现在oracle数据库中连接服务器2中的DB2数据库。
服务器1
os: AIX 5.3
ip: 192.168.0.1
db: oracle 11gR2
服务器2:
os: AIX
IP: 192.168.0.5
db: DB2 v9.7
主要目的:
通过在服务器1中构建透明网关,实现在oracle数据库中连接服务器2中的DB2数据库。
Oracle--->dg4odbc驱动--àunixODBC驱动管理器--àdb2专用odbc驱动程序
实施步骤:
1. 在服务器1中安装unixODBC驱动程序。
a) 在官方网站中下载unixODBC驱动源代码包:http:://www.unixodbc.org
b) 导入几个必要的环境变量:
export OBJECT_MODE=64 (确保编译出来的unixODBC为64位可执行程序,假如数据库是32,那么64换成32)
export PATH=$PATH:/usr/vacpp/bin(这个是编译器安装地址)
export CC=xlc_r
export CCC=xlC_r
c) 进入解压够的unixODBC目录,解压后的目录如下图所示:
./configure --prefix=/usr/local/unixODBC
./make
./makeinstall
d) 在oracle的.profile中添加下面几行:
export ODBCHOME=/usr/local/unixODBC/etc
export ODBCINI=$ODBCHOME/odbc.ini
export PATH=$PATH:/usr/local/unixODBC/bin
export LD_LIBRARY_PATH=/usr/local/unixODBC/lib
e) 进入/usr/local/unixODBC/lib目录,执行下面这些命令:
ar -x-X any libodbc.a
ar -x-X any libodbccr.a
ar -x-X any libodbcinst.a
ln -slibodbc.so.2 libodbc.so
ln -slibodbccr.so.2 libodbccr.so
ln -slibodbcinst.so.2 libodbcinst.so
2. 安装DB2for ODBC and CLI driver
a) 在ibm官网上下载,v9.7fp8_aix64_odbc_cli.tar.gz
b) 解压这个文件,然后进去解压后的目录,目录结构如下图所示:
c) 执行下面几条命令:
export PATH=$PATH:/oracle/odbc_cli/clidriver/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/oracle/odbc_cli/clidriver/lib
d) 执行下面这条命令:
cd /oracle/odbc_cli/clidriver/cfg/
cp db2cli.ini.sample db2cli.ini
echo “ “ > db2cli.ini
打开db2cli.ini文件,添加下面几行:
Database=DB2NAME Protocol=TCPIP Hostname=192.168.0.5 ServiceName=60008 uid=odslook pwd=odslook autocommit=0
e) 执行下面这条命令,
cd /usr/local/unixODBC/etc
f) 打开odbc.ini文件,添加下面几行:
[ODSBATDB] Description = IBMDB2 ODBC data source Driver = DB2 Trace = Yes DMEnvAttr = SQL_ATTR_UNIXODBC_ENVATTR={DB2_CLI_DRIVER_INSTALL_PATH=/oracle/odbc_cli/clidriver}
g) 打开odbcinst.ini文件,添加下面几行
[DB2] Description = IBM DB2 ODBC driver (64-bit) Driver = /oracle/odbc_cli/clidriver/lib/db2o.o FileUsage = 1 DontDLClose = 1
3. 配置oracle透明网关
a) 进入oracle的hs目录
cd /oracle/app/database/product/11.2.0/db_1/hs/admin
b) cp initdg4odbc.ora initODSBATDB.ora
echo “ “ >initODSBATDB.ora
c) 在initODSBATDB.ora文件中加入下面几行:
# Thisis a sample agent init file that contains the HS parameters that are
#needed for the Database Gateway for ODBC
HS_FDS_CONNECT_INFO= ODSBATDB
HS_FDS_TRACE_LEVEL= off
HS_FDS_SHAREABLE_NAME= /usr/local/unixODBC/lib/libodbc.so
HS_LANGUAGE="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"(按数据库字符集来定)
setODBCINI=/usr/local/unixODBC/etc
d) 进入oracle监听目录
cd /oracle/app/database/product/11.2.0/db_1/network/admin
打开listener.ora文件,在文件中添加下面内容:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME= ODSBATDB) (ORACLE_HOME = /oracle/app/database/product/11.2.0/db_1 ) (PROGRAM = dg4odbc)(ENVS=LD_LIBRARY_PATH=/oracle/app/database/product/11.2.0/db_1/lib:/oracle/odbc_cli/clidriver/lib:/usr/local/unixODBC/lib) ) )
e) 打开tnsnames.ora文件,在文件中添加下面内容:
sqlplus /nolog conn/as sysdba CREATEPUBLIC DATABASE LINK DBLINK CONNECT TO“odslook” IDENTIFIED BY “odslook” USING ‘DB2’ select* from dual@dblink;
f) 重启oracle数据库和监听:
sqlplus /nolog conn/as ssydba shutdownimmediate quit lsnrctl stop lsnrctl start sqlplus/nolog conn/as sysdba startup lsnrctlstatus
g) 在数据库中创建link
sqlplus /nolog
conn/as sysdba
CREATEPUBLIC DATABASE LINK DBLINK CONNECT TO“odslook” IDENTIFIED BY “odslook” USING ‘DB2’
select* from dual@dblink;
h) oracle 透明网关搭建成功。
4. 注意事项:
由于机器软硬件环境不一致,可能在别的机器中搭建透明网关时,会出现一些意想不到的异常,但主干部分应该都是一致,主要注意一下几点:
a) 注意dg4odbc,unixODBC,db2o.o这个三个驱动不能搞混淆
b) 本文中”ODSBATDB“为DB2的数据库名称,所以在别的地方使用这个文档,只需要将ODSBATDB名字换成对应的DB2数据库名称,odslook换成对应的用户名和密码,ip地址换成对应的ip。ORACLE_HOME换成对应的oracle安装地址。
更多推荐
所有评论(0)