设为首页 收藏本站
查看: 829|回复: 0

[经验分享] Oracle与SQL Server互连

[复制链接]

尚未签到

发表于 2018-10-13 06:40:56 | 显示全部楼层 |阅读模式
  不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。
  而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还采用过通用连接技术。目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。
  透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。
  下面是具体步骤
  1、在SQL SERVER数据库上创建测试账号和表
  这里我用的是10.16.74.140的PUBS数据库,账号cyx,
  create table t (c char(10));
  2、我测试所用数据库和透明网关是在同一台机器上,在我本机:10.16.98.16,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。
  3、安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:
  HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"
  4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容:
  (SID_NAME = tg4msql) # SID自己命名
  (ORACLE_HOME = c
  (PROGRAM = tg4msql)
  5、在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)
  )
  6、修改ORACLE SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL NAME。然后重起数据库。
  7、现在在ORACLE SERVER上创建DB LINK就可以了。下面实验数据:
  ------------ www.ncn.cn ------------- gototop --------------
  C:>sqlplus /nolog

  SQL*Plus:>  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  SQL> conn sys/change_on_install as sysdba
  已连接。

  SQL> create user cyx>  用户已创建
  SQL> grant connect to cyx;
  授权成功。
  SQL> grant resource to cyx;
  授权成功。
  SQL> conn cyx/cyx
  已连接。

  SQL> create database link tosql2k connect to cyx>  2 'sql2k';
  数据库链接已创建。
  SQL> select * from t@tosql2k;
  c
  ----------
  abc
  aaa
  bbb
  cyx
  gototop
  ncn
  11111
  已选择7行。
  SQL> insert into t@tosql2k values('ncn.cn');
  已创建 1 行。
  SQL> commit;
  提交完成。
  SQL> select * from t@tosql2k;
  c
  ----------
  abc
  aaa
  bbb
  cyx
  gototop
  ncn
  11111
  ncn.cn
  已选择8行。
  --------------------------
  以上示例,oracle server和透明网关server都是在同一台机器上,像在开始说明的那样,我们同样可以在其他下面oracle server中通过透明网关来访问sql server的数据。下面是示例:
  现在这个oracle server上添加tnsname。
  --------------------------
  hawk3$sqlplus cyx

  SQL*Plus:>  (c) Copyright 2000 Oracle Corporation. All rights reserved.
  Enter password:
  Connected to:

  Oracle8i Enterprise Edition>  With the Partitioning option

  JServer>
  SQL> create database link hawk3_sql2k connect to cyx>  2 using 'sql2k';
  Database link created.
  SQL> select * from t@hawk3_sql2k;
  c
  --------------------
  abc
  aaa
  bbb
  cyx
  gototop
  ncn
  11111
  ncn.cn
  8 rows selected.
  -------------------------------
  关于透明网关的一些问题,在此加以说明如下:
  1、Oracle For SQL Server的透明网关在UNIX下无法实现,目前只支持WIN; 原因很简单,SQL Server本身不支持UNIX,所以Oracle也无法直接在UNIX下访问SQL Server。
  2、Oracle For其它数据库的透明网关,如SYBASE等有UNIX本版本的数据库在UNIX可以实现。
  3、Oracle透明网关软件在Oracle 8i时是需要花钱另买的,大约1万$;到Oracle 9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。
  4、针对我们的实际应用,如果有需要实现Oracle 到SQL Server的互连,我们需要另外用一台WIN下的Oracle 9i来做透明网关服务器,其它UNIX下的Oracle通过这个透明网关来访问SQL Server。
  5、不同数据库间的数据处理需使用标准SQL来实现。
  6、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620874-1-1.html 上篇帖子: SQL SERVER INSTALL 下篇帖子: sql server分页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表