今天需要考虑监控服务从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/