ORACLE 11G透明网关访问SQL2008R2
一、 测试环境说明
SQL Server 2008 R2 64、win64_11gR2_database透明网关、Oracle Database 11g。
其中Oracle 11g 、SQL Server 2008 R2 64、win64_11gR2_gateways分别安装在不同的电脑上。
涉及到的三台服务器:
Ø ORACLE 服务器:
操作系统:Microsoft Windows Server 2008R2 64位
IP:192.168.10.20
Ø SQL SERVER 服务器:
操作系统:Microsoft Windows Server 2008R2 64位
IP:192.168.10.236
Ø 透明网关服务器:
操作系统:Microsoft Windows Server 2008R2 64位
IP:192.168.10.18
二、 配置环境
分别为三台服务器安装操作系统,并按照测试环境说明中的配置信息,进行操作系统配置。具体的SQL Server 2008R2和Oracle 11g 的安装不在这里赘述,下面详细说明一下透明网关的安装过程。
透明网关下载地址:
在主机WINGATEWAY上把下载好的透明网关文件win64_11gR2_gateways.zip 进行解压缩,解压后进入目录,点击setup.exe,启动安装界面,安装Oracle Transparent Gateway For Microsoft SQL Server,如下图:
下一步,输入SQL Server数据库服务器ip:192.168.10.236,SQL Server实例名称(如果SQL Server安装的是默认的实例名,这里可以不填写),SQL Server数据库名称:radmon,如下图:
下一步,查看信息无误点击“安装”,如下图:
安装最后会弹出,Oracle Net Configuration Assistant配置界面,如下图:
把执行典型配置打勾,点击下一步,等待配置完成后,上面界面会自动关闭,回到主安装界面:
点击退出完成透明网关的安装。
三、 配置透明网关参数文件
在服务器:192.168.10.18上,默认情况下,安装透明网关时会生成一个默认的参数文件:initdg4msql.ora,它的SID是dg4msql,可是使用这个文件,也可以新建一个文件,本例中使用新建文件。
进入$GATEWAY_HOMEtg_1dg4msqladmin目录,即安装透明网关的安装目录,E:product11.2.0tg_1,
新建一个文件:inittest.ora,这个名字可随便取但要注意格式:init<sid>.ora,把它理解为参数文件就可以。
HS_FDS_CONNECT_INFO=[192.168.10.236]//TEST
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
其中:HS_FDS_CONNECT_INFO的设置有多种格式具体的可以查询Oracle的帮助文件。
示例:
四、 配置监听
在服务器:192.168.10.18上,进入$GATEWAY_HOMEnetworkadmin下,编辑listener.ora文件:
注意:下面的ORACLE_HOME实际上指的是安装透明网关的主目录,SID_NAME要与上一步配置的参数文件的名称相对应:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =E:product11.2.0tg_1 )
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME =test)
(SID_NAME = test)
(ORACLE_HOAME =E:product11.2.0tg_1 )
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.18)(PORT = 1521))
)
)
示例:
五、 启动监听
在服务器:192.168.10.18上,进入$GATEWAY_HOMEBIN,找到LSNRCTL.EXE双击打开,弹出一下窗口:
输入stop 先停止监听,然后在输入start启动监听:
如果启动成功,说明透明网关已经配置完成。
六、 配置tnsname.ora
在数据库服务器:192.168.10.20上,打开,$ORACLE_HOMENETWORKADMIN,这里的$ORACLE_HOME指的是oracle的安装主目录,D:Oracleproduct11.2.0dbhome_1NETWORKADMIN,找到并打开tnsname.ora,添加以下内容:
test=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.10.18)(PORT = 1521))
)
(CONNECT_DATA =
(SID=test)
)
(HS = OK)
)
注意:1、上面标黄色的ip是透明网关所在的ip,这点要特别注意;
2、(HS = OK) 这个很重要,表示的是连接的是异构数据库。
示例:
配置tnsname.ora文件以后,在192.168.10.20上创建数据库链接:
打开SQL PLUS或者pl/sql:
登录SQL PLUS 或者pl/sql后 输入:
SQL>create database link test connect to sa identified by “11” using ‘test’;
按回车后提示数据库链接已创建。
输入select * from radmondb.ems_user@test;当从oracle数据库上发出这个sql时,实际上通过tnsname.ora配置的test信息转到192.168.10.18上,当192.168.10.18监听到192.168.10.20的请求时,再通过inittest.ora配置的HS_FDS_CONNECT_INFO信息转到192.168.10.236的SQLSERVER数据库上,最终把用户需要的数据返回。
七、 总结及扩展
1、配置透明网关需要配置三个文件:分别为192.168.10.18上的inittest.ora,listener.ora和192.168.10.20上的tnsname.ora。
2、透明网关连接到多个SQLSERVER上的配置,需要在透明网关服务器上增加一个init<sid>.ora文件,并且在listener.ora增加相应的内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =E:product11.2.0tg_1 )
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME =test)
(SID_NAME = test)
(ORACLE_HOAME =E:product11.2.0tg_1 )
(PROGRAM = dg4msql)
)
)同时在oracle服务器的tnsname.ora文件中增加相应的配置:
<sid>=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 透明网关的ip/计算机名))(PORT = 1521))
)
(CONNECT_DATA =
(SID=<sid>)
)
(HS = OK)
)
本教程只在以上的测试环境中通过,如果环境不同,请根据情况具体配置,上述教程透明网关,SQLSERVER和ORACLE分别安装在三台不同的服务器上面,用户可以根据自己的需求,安装在一台,两台,三台服务器上都是可行的。