ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle通过透明网关访问sql server

oracle通过透明网关访问sql server

原创 Linux操作系统 作者:lsl031 时间:2011-08-25 10:46:51 0 删除 编辑

今天需要考虑监控服务从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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORA-00600: qkabix
请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    56
  • 访问量
    799145