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