服务器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安装地址。

Logo

更多推荐