ORACLE11G通过透明网关访问SQLServer2008数据

来源:互联网 发布:重置网络命令 编辑:程序博客网 时间:2024/05/17 08:22

 

 

经过验证后的原创。

oracle的透明网关是oracle直接访问异构数据库的利器。在9i中,透明网关是包含在数据库安装程序中的,在安装数据库软件过程中可以选择;10g中,oracle把透明网关独立出来,需要单独下载安装。

本文主要讨论在oracle下如何配置透明网关去访问sqlserver数据库。在11g之前,for sqlserver的透明网关只能安装在windows操作系统上,从11g开始,for sqlserver的透明网关也可以安装在linux/unix系统中。
本文讨论的是11g下的透明网关。

 

在本例中的环境。

ORACLE DB,透明网关,SqlServer全装在本机。win 7 32bit.

SQL数据库名'test'  登陆用户是’source’, 密码’source’

透明网关路径:D:\database11g\product\11.2.0\tg_1

DB路径:      D:\database11g\product\11.2.0\dbhome_1

1、下载透明网关
11g下,透明网管是一个单独的组件,需要单独下载安装。
有500多M吧

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html

 

2、安装
解压后,进入目录,点击setup.exe,启动安装界面,安装oracle transparent gateway for microsoft sql server;
下一步,输入sqlserver地址和sqlserver 数据库名。安装完后,会弹出配置监听界面,选择执行典型配置,下一步,完成。

 

3.配置文件

3.1   init****.ora。

在安装完成之后会产生一个默认的参数文件,D:\database11g\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora,把它COPY一份,命名init****.ora。这里我写成inittest.ora及SQL数据库名。

 

HS_FDS_CONNECT_INFO="127.0.0.1;database=test"

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

 

3.2 配置透明网关监听

D:\database11g\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

注意:下面的ORACLE_HOME实际上指的是安装透明网关的主目录,sid_name要与上一步配置的参数文件的名称相对应,注意把端口改成1523

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))

      (ADDRESS = (PROTOCOL = TCP)(HOST = xiaozhu-PC)(PORT = 1523))

    )

  )

 

SID_LIST_LISTENER=

  (SID_LIST=

      (SID_DESC=

         (SID_NAME=dg4msql)

         (ORACLE_HOME=D:\database11g\product\11.2.0\tg_1)

         (PROGRAM=dg4msql)

      )

         (SID_DESC=

         (GLOBAL_DBNAME=test)

         (SID_NAME=test)

         (ORACLE_HOME=D:\database11g\product\11.2.0\tg_1)

         (PROGRAM=dg4msql)

      )

  )

 

ADR_BASE_LISTENER = D:\database11g\product\11.2.0\tg_1

 

4.启动监听  

  D:\database11g\product\11.2.0\tg_1\BIN\lsnrctl start

 

至此,在透明网关的工作就完成了。

 

6.配置ORACLE   tnsname.ora

D:\database11g\product\11.2.0\dbhome_1\NETWORK\ADMIN

注意端口改成1523 

test  =

  (DESCRIPTION=

    (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1523))

    (CONNECT_DATA=(SID=test))

    (HS=OK)

  )

 

完成后测试下ORACLE   SQLSERVER  是不是正常可以启动的。

 

 

7、创建数据库链接
第一个test是链接名,第二个testSQL数据库名。
SQL> create database link test connect to source identified by "source" using 'test';

 

8、测试连接

Dbo.psn SQL表。
SQL> select * from
dbo.psn@test;

 

当从oracle数据库上发出这个sql时,实际上通过tnsname.ora配置的test信息转到透明网关上,当透明网关的监听监听到tnsname.ora的请求时,再次通过inittest.ora配置的HS_FDS_CONNECT_INFO信息转到sqlserver数据库上,最终把用户需要的数据返回。

如果这个sql有记录返回,说明透明网关没有问题。

 

总结:配置透明网关需要配置三个文件:分别为inittest.ora、listener.ora以及DB上的tnsname.ora

注意端口号的设置。