马儿涂鸦
采用透明网关方式的oracle与sql server的异构访问
11月29日(星期三)

以前采用过建立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字段命名不能采用第一个字母大写的方式


文章分类: 开发技术
前篇(06-11-15): oracle中是否有返回某一天是星期几的函数?
后篇(06-12-18): IT人不可不听的9个故事

最新回复(1件)
主题/内容 作者/日时
抽湿机

肝炎肝炎肝炎
切割机

抽湿机
07-11-22 11:56

发表评论
标题:
称呼:
内容:

引用链接
您可以按照以下步骤引用本文.本站收到您的引用通知后, 将自动链接您的文章, 以方便别人阅览 .
1. 启动您自己的博客管理页面, 并进入发表新文章的画面, 输入文章的内容. (如果您是ITPUB的博客请点这里.)
2. 复制下面虚线框里的连接字串, 把它们粘贴到您的文章中, 按照您的喜好修改一下表示文字.
3. 确认您选择了"发送引用通知"的选项.
4. 发表您的文章.
好啦, 您的文章就可以被自动链接到本站啦.

« 七月 2008 »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Blog天地
  • eygle's blog
  • biti_rainy's blog
  • Fenng's Blog
  • Piner Blog
  • Louise's Blog
  • 沧海笑一声
  • dbanotes
  • DBA notes
  • bonny-erp
  • oracle‘blog


  • Creative Commons License 本站全部著作均采用CC授权. Plog 1.0 is powered by: plogworld.net.
    Itpub BLOG is provided by: itpub.net.
    This temlate(named Happy-Life's SunShine) is designed by lodge@itpub(肥猫猫).