`
chunanyong
  • 浏览: 57234 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Oracle与SQL Server的互连

阅读更多

Oracle与SQL Server的互连 
  
  
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。 

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

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

下面是具体步骤,如有疑问欢迎和我联系,MSN: gototop_ncn@hotmail.com。 

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就可以了。下面实验数据: 


C:>sqlplus /nolog 

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 6月 25 13:29:41 2003 

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 

SQL> conn sys/change_on_install as sysdba 

已连接。 

SQL> create user cyx identified by cyx default tablespace users; 

用户已创建 

SQL> grant connect to cyx; 

授权成功。 

SQL> grant resource to cyx; 

授权成功。 

SQL> conn cyx/cyx 

已连接。 

SQL> create database link tosql2k connect to cyx identified by cyx using 

2 'sql2k'; 

数据库链接已创建。 

SQL> select * from t@tosql2k; 



---------- 

abc 

aaa 

bbb 

cyx 

gototop 

ncn 

11111 

已选择7行。 

SQL> insert into t@tosql2k values('ncn.cn'); 

已创建 1 行。 

SQL> commit; 

提交完成。 

SQL> select * from t@tosql2k; 



---------- 

abc 

aaa 

bbb 

cyx 

gototop 

ncn 

11111 

ncn.cn 

已选择8行。 

------------ www.ncn.cn ------------- gototop -------------- 

以上示例,oracle server和透明网关server都是在同一台机器上,像在开始说明的那样,我们同样可以在其他下面oracle server中通过透明网关来访问sql server的数据。下面是示例: 

现在这个oracle server上添加tnsname。 

------------ www.ncn.cn ------------- gototop -------------- 

hawk3$sqlplus cyx 

SQL*Plus: Release 8.1.7.0.0 - Production on Wed Jun 25 14:00:34 2003 

(c) Copyright 2000 Oracle Corporation. All rights reserved. 

Enter password: 

Connected to: 

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production 

With the Partitioning option 

JServer Release 8.1.7.0.0 - Production 

SQL> create database link hawk3_sql2k connect to cyx identified by cyx 

2 using 'sql2k'; 

Database link created. 

SQL> select * from t@hawk3_sql2k; 



-------------------- 

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、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。 

分享到:
评论

相关推荐

    SQLServer2008R2与Oracle11gR2互连

    SQLServer2008与Oracle11g 同时为现代企业两个重量级的数据库,如何实现他们之 间的互连互通 1.2. 环境信息 SQLServer :2008R2 Oracle:11gR2 1.3. 相关文档 《OracleDB11g初探》《SQLServer2008初探》

    数据库导入导出.rar

    数据库导入导出: 在Oracle里设置访问多个SQL Server 把图片上传到oracle表中 Oracle与SQL Server的互连. OralceandSQL2000通过数据链接 Oracle中导入文本数据的方法 数据迁移基础与ORACLE体系结构

    数据库系统原理与开发-数据库连接技术(ODBC).pdf

    数据库系统原理与开发 电子科技大学-陈安龙 三、ODBC的层次结构 ODBC应用程序接口 客户端数据库应用程序 ODBC驱动程序管理器 驱动程序1 驱动程序2 驱动程序n 数据源1 数据源2 数据源n Oracle DBMS PostgreSQL DBMS ...

    新型农村合作医疗与医疗救助信息系统

    数据库选用Microsoft SQL Server或ORACLE8,它支持Client/server结构,支持多用户,支持大型应用,安全性好可建立系统日志。 网络协采用TCP/IP协议,支持多平台,具有异种环境机型互连的能力,满足连接INTERNET的...

    Oracle组件实现动态Web数据库

    [摘 要] 本文简要介绍实现Web数据库的基本方法,讨论了利用Oracle的服务器选件之一WebServer结合PL/SQL和相关内置程序包实现动态Web的基本方法,并给出了一简单示例。 随着计算机互连网络的发展,Internet正成为...

    Web应用安全:web数据库访问技术.pptx

    Web数据库访问技术 1、CGI技术 CGI(Common Gateway Interface,通用网关界面)是一种Web服务器上运行的基于Web浏览器输入程序的方法,是最早的...早期数据库访问是由本机库来执行的,例如SQL Server的DBLib以及Oracle

    FlowHeater_v4.1.8.rar

    通过实例,Oracle数据库表中的信息可以直接复制到MS SQL Server数据库中,而不需要直接干预。 而当复制引发的信息可以被“加热”,即转换、修改、修改、操纵,并添加静态或动态信息恢复,这是定义的规定,配有直观的...

    Java高级程序设计实战教程第八章-Java数据库编程.pptx

    目前有许多DBMS产品,如DB2、Oracle、Microsoft SQL Server 、Sybase、Informix、MySQL等,Java程序需要访问这些数据库,并对数据进行处理。 Java高级程序设计实战教程第八章-Java数据库编程全文共12页,当前为第2页...

Global site tag (gtag.js) - Google Analytics