Oracle透明网关

    最近需要用Oracle连接MS数据库,在Oracle里安装Transparent Gateway for SQL Server,遇到不少问题,终于在今天完全搞定,所以把一些注意问题记录下来。

    通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。各不同的数据为配置方式也大同小异,本文只说明SQL Server的安装。 Oracle的透明网关的安装其实也挺简单:

ms 数据库IP:10.63.12.10;默认端口:1433;数据库:MSDB;用户名:msdb;密码:123456

oracle数据库IP: 10.87.143.86;端口:1521

第一步,安装Oracle Transparent Gateway软件。

    在9i中,Gateway软件就在那三张安装盘里;而在11g中是一个单独的安装文件,需要单独下载。

    Oracle的Windows xp版本下载地址为: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html

1、为了方便管理,不易混淆,透明网关安装路径最好与Oracle安装路径一致。

2、下一步,填写数据库服务器主机名,如:10.63.12.10;数据库名称:MSDB。

3、安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。

安装完Gateway软件后,在ORACLE_HOME目录下有一下dg4msql的目录,这就是Gateway软件的目录了。

第二步,配置Gateway的设置。

在dg4msql/admin目录下有一个initdg4msql.ora的文件。

该文件的格式是init.ora,这里的SID在后面需要用到,系统默认的是dg4msql,一般情况这样就可以了。

如果改名,在之后使用这个修改后地名字即可,配合使用MSDB,则文件名变成initMSDB.ora。

该文件是Gateway的初始参数文件,描述连接的是哪个SQL Server数据库。文件内容如下:

HS_FDS_CONNECT_INFO=10.63.12.10:1433//MSDB

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:hostname:port/serverinstance /databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2005默认为1433(题外话:在Oracle的安装文档里没有指定这个PORT,所以无法正确使用,我在这儿搞了很长时间才从网上找到原 因,看来Oracle也不能太相信了!)serverinstance是SQL Server的实例名,不知道什么时候SQL Server也搞起实例来了,一般空着就行。Databasename是SQL Server的数据库名,好像也可以空着,不过我还是指定了。这一步需要注意的就是那个端口号了。另外在9i中格式跟这个不一样, 是"SERVER=dataserver;DATABASE=MSDB"。

第三步,配置监听器。

在listener.ora文件里加入以下内容:

SID_LIST_LISTENER =

   (SID_LIST =

     (SID_DESC =

       (SID_NAME = MSDB)       # 前面定义的SID

       (ORACLE_HOME = F:\oracle\product\11.2.0\dbhome_1)     #Oracle的安装目录

       (PROGRAM = dg4msql)   # 配置目录,不能变

     )

   )

这里PROGRAM指定应用程序名称,不能改变。SID_NAME就是前面init.ora文件名里指定的SID,ORACLE_HOME没什么说 的吧?这一步需要注意的是在集群环境下,SID_LIST_LISTENER也应该是这个名称而不应该是类似于 SID_LIST_LISTENER_DBRAC1,SID_LIST_LISTENER_DBRAC2这样的名称。不同机器下内容一样就可以了。这也是 我遇到的问题。

第四步,配置tnsnames.ora

TESTASRS_ERP =

   (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST=10.87.143.86)(PORT=1521))    

     )

     (CONNECT_DATA =

       (SID = MSDB)   # 前面定义的SID

     )

     (HS=OK)

   )

此处的SID也是init.ora文件名中指定的SID。与一般配置不同的就是(HS=OK)这句,这句指定是外部程序而不是Oracle数据库实例

第五步,创建DBLink

跟一般的DBLink一样,没什么说的,using子句里使用tnsnames.ora里配置的entry即可。

 create public database link msdbLink connect to msdb identified by "123456" using 'MSDB';

第六步,使用数据库连接

按一般的数据库连接使用: Select count(*) from area@msdbLink; 注意事项不同版本的名称不同 init.ora文件里的端口号集群环境的监听器配置 Tnsnames.ora里的(HS=OK) 未说明的重要问题事务问题

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24695024/viewspace-1813560/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24695024/viewspace-1813560/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值