经过验证后的原创。
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是链接名,第二个test是SQL数据库名。
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
注意端口号的设置。