oracle10g/11g通过透明网关gateway访问sqlserver配置方法

来源:互联网 发布:钉钉mac 编辑:程序博客网 时间:2024/06/05 08:47

    最近在做的项目中,要通过oracle创建dblink访问sqlserver,度娘之决定用透明网关实现。有关于这方面的网上有很多,自己只是结合最近做的经验来总结一下,权当记录而已。

    一、首先是10g透明网关安装与配置。

        Gateway既可以在oracle服务器上安装,也可以在sqlserver服务器上进行安装,亦可以在第三方服务器上进行安装。如果和oracle装在同一台服务器上,最好把Gateway和oracle安装在同一目录下,便于管理。

        1、安装步骤略去,只说下安装完成后弹出的Oracle Net Configuration Assistant配置界面,如下图:

    如果oracle和透明网关装在同一台服务器上,则不要执行典型设置,不然配置的监听端口都是1521可能会有冲突,自己配置监听。总而言之,透明网关的监听端口号最好和oracle监听端口号不一样。 一般来说,gateway安装完成后,gateway的环境变量在oracle的环境变量前,最好把oracle的环境变量放在gateway环境变量前。这样做的好处只可意会,不可言传啦!大笑
    
    2、透明网关安装完成后,监听也已经配置完成,下一步就是配置透明网关参数文件。
       默认情况下,安装透明网关时会生成一个默认的参数文件:initdg4msql.ora,它的SID是tg4msql,可以使用这个文件,也可以新建一个文件,本例中使用新建文件。   

进入$GATEWAY_HOME\tg_1\ tg4msql\admin目录,即安装透明网关的安装目录,我的是D:\oracle\product\10.2.0\tg_1\tg4msql\admin新建一个文件:inittest.ora,这个名字可随便取但要注意格式:init<sid>.ora,把它理解为参数文件就可以,现在编辑参数文件:

# This is a sample agent init file that contains the HS parameters that are# needed for the Transparent Gateway for SQL Server

## HS init parameters#HS_FDS_CONNECT_INFO="SERVER=xxx.xxx.xxx.xxx;DATABASE=xxx"  HS_FDS_TRACE_LEVEL=OFFHS_FDS_RECOVERY_ACCOUNT=xxx   //用户名

HS_FDS_RECOVERY_PWD=xxx   //密码

HS_FDS_CONNECT_INFO设置有多种格式,如:HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433

在安装透明网关如果设置服务器和数据库即为上面格式。

 

3、配置监听

找到$GATEWAY_HOME listener文件所在路径,我的是

D:/oracle/product/10.2.0/tg_1/NETWORK/ADMIN/listener.ora,这些配置与DB配置类似。

 SID_LIST里添加    

   (SID_DESC =

      (SID_NAME = test)      

      (ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)  

      (PROGRAM = tg4msql)

   

注意:SID_Name与参数文件的名称inittest.ora中test相对应,且PROGRAMN要为tg4msql

4、配置监听完成后,我们来启动与测试监听

启动监听和DB配置一样,CMD命令符,输入gateway的环境变量+lsnrctl,我的是

D:\oracle\product\10.2.0\tg_1\BIN\lsnrctl

再输入start+gateway监听名称,启动监听。

再输入status+gateway监听名称,查看监听状态。

5、配置tnsname.ora文件

如果oraclegateway安装在同一台服务器上,则在$ORACLE_HOME\NETWORK\ADMIN目录下配置tnsnames.ora文件,(注意是oracle目录下)我的是D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN,如下:

TEST=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1525))

    )

    (CONNECT_DATA =

      (SID=test)

    )

    (HS = OK)

  )

注意HS=OK必须要,这主要是用于Oracle server调用异构服务器进行处理必须的。

如果oraclegateway不在同一台服务器上,则直接在gateway目录下配置即可。

现在使用tnsping测试,C:/Documents and Settings>tnsping test.

到了这里,大部分已经完成啦。现在来创建dblink。

create public database link testsa connect to "xxx" identified by "xxx" using

'(DESCRIPTION =

   (ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xxx.xxx)(PORT=1525))

 (CONNECT_DATA=(SID=test))

(HS = ok))';

注意DESCRIPTIONHStnsname.ora中的HS=OK

自己测试下吧,这时候oracle就能像创建内部dblink一样访问sqlserver数据库了。

 

    二、11g透明网关安装与配置。

其实10g和11ggateway安装过程差不多,无非是配置文件发生了一点改变。配置文件所在目录变成了dg4msql,所以在监听文件添加sid的时候,PROGRAM变成了dg4msql,且配置文件里异构连接数据库变成了HS_FDS_CONNECT_INFO=[ip地址]:端口号//数据库名称。格式发生了一点变化哈!        

         好了,最近做项目做得头昏脑胀的,写上一篇打个哈欠先。

原创粉丝点击