ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 采用透明网关方式的oracle与sql server的异构访问

采用透明网关方式的oracle与sql server的异构访问

原创 Linux操作系统 作者:sunnily 时间:2019-02-07 10:03:05 0 删除 编辑
以前采用过建立ODBC的方式连接sql server,但最近业务需要采用更方便的透明网关方式访问sql server.

ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前建立ODBC就是ORACLE采用通用连接技术。目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。

透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。

oracel database for windows 9i以后都有一项透明网关(Transparent Gateway)的安装,默认安装是不会安装这项的,要在自定义安装中选择Transparent Gateway,它现在支持多种数据库:SQL SERVER、SYBASE、DB2,选择SQL SERVER安装即可.

1. 在SQLDB上创建将要从Oracle数据库访问SQL Server的用户testuser/testuser,并授予可访问CDR的权限;

接下来是GATEWAY:

1.安装好Oracle 9.0.1 Database for Windows后,会发现在%ORACLE_HOME%下有目录tg4msql,以及网关程序$ORACLE_HOMEBINtg4msql;

2. 确保在c:winntsystem32下有ntwdblib.dll,若没有则安装SQL Server2000(安装类型选择“仅连接”)。此文件是访问SQL Server的DB-Library;

3. ping SQLDB看是否通,若不通则在winntsystem32driversetchosts文件中增加一行,用来解析SQLDB的IP地址,很简单不多说了。

4. 修改%ORACLE_HOME%tg4msqlinittg4msql.ora

inittg4msql.ora内容如下:
               HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=pubs"
               HS_DB_NAME=pubs
               HS_FDS_TRACE_LEVEL=OFF
               HS_FDS_RECOVERY_ACCOUNT=RECOVER
               HS_FDS_RECOVERY_PWD=RECOVER
5、$ORACLE9I_HOMEnetworkadmin listener.ora内容如下:
               
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
      )
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test9)
      (ORACLE_HOME = d:oracleora92)
      (SID_NAME = test9)
    )
    (SID_DESC=
      (SID_NAME=pubs)
      (ORACLE_HOME=d:OracleOra92) 
      (PROGRAM=tg4msql)
    )
    (SID_DESC=
      (SID_NAME=northwind)
      (ORACLE_HOME=d:OracleOra92) 
      (PROGRAM=tg4msql)
    )
  )
               
               重启动这台做gatewaywindows机器上(IP:192.168.0.2)TNSListener服务.
               
               (凡是按此步骤新增可访问的SQL Server数据库时,TNSListener服务都要重启动)

6、在oracle server上的tnsnames.ora中加入到透明网关的tnsname,内容如下:

sql2k =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521)) #此处HOST填的是透明网关SERVER的地址

)

(CONNECT_DATA = (SID = tg4msql) ) #此SID应和透明网关SERVER上设定的SID相同

(HS=OK)

)

7、修改ORACLE SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL NAME。然后重起数据库。

8、现在在ORACLE SERVER上创建DB LINK就可以了

注意,查询sql server的字段时要用双引号括起来,而且sql server字段命名不能采用第一个字母大写的方式


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

请登录后发表评论 登录
全部评论

注册时间:2004-04-19

  • 博文量
    22
  • 访问量
    9918