oracle通过透明网关访问sql server

今天需要考虑监控服务从win移到到一台linux服务器上,但是发现一个问题,以前win上是装了sql server客户端来进行对远程短信网关数据库的数据写入,从而实现短信报警的,如果监控的服务器移到linux,貌似无法安装sql server客户端了。

于是考虑是否可以通过透明网关,通过异构的dblink方式,由oracle数据库检测出故障时,直接调用dblink来实现远程sql的数据插入,从而实现短信报警,避免使用客户端调用的问题。

安装步骤如下:

1.先要安装透明网关的安装包,这个在10g里面应该是要单独下载安装的(oracle性能越来越好,功能越来越强,安装包越来越小,安装越来越简单,很大程度上就是由于oracle对很多功能进行了剥离,默认请况下不使用,这就扯远了)。

2.安装好后,在$oracle_home\tg4msql\admin目录下,有这样一个文件inittg4msql.ora,拷贝生成另外的名字,为init.ora,这里的sid就是后面监听及tns配置里面需要使用的名字了,如果默认原来的文件,那么,sid就是tg4msql。在init.ora文件走ing进行如下编辑:

HS_FDS_CONNECT_INFO="SERVER=callcenter;DATABASE=pubs"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
其中server为远程sql的主机名,这里我是用了host文件进行配置之后,在本机的别名。database及时sqlserver里面的数据库名字。我的文件名命名为initsms.ora.

3.配置监听及tns:

监听文件中加入:

(SID_DESC=
         (SID_NAME= sms)
         (ORACLE_HOME=E:\oracle\product\10.2.0\db_1)
         (PROGRAM=tg4msql)
     )  

tnsname文件中加入

sms =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 本机ip)(PORT = 1521))
    (CONNECT_DATA =
      (SID = sms)
      )
      (HS = OK)
  )

 

4.再创建dblink
create database link "SQLSERVER"
connect to 用户名 identified by "12345677888888"
using 'sms';

5.访问select * from jobs@SQLSERVER即可。

6.在前期配置中,由于tnsnames文件写得有一点问题:

sms =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 本机ip)(PORT = 1521))
    (CONNECT_DATA =
      (SID = sms)
       (HS = OK )    -----这里括号的位置有问题,所以在tnsping没问题的请款下,频繁报错,报错为ORA-02068: 以下严重错误源于 SQLSERVER ORA-03135: 连接失去联系
     )
  )

 

另外,如果需要连接到另外的数据库或者配置有所变化,即便重启了监听,也需要重新建立dblink。否则改动无法体现。

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

转载于:http://blog.itpub.net/288166/viewspace-705758/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值