oracle如何与sql server的连接

lyhliuyanhong 2010-10-29 09:22:54
Oracle 10g如何和sql server建立连接,访问sql server数据库?谢谢
...全文
389 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lonenan 2011-01-13
  • 打赏
  • 举报
回复
oracle 与sql server的交互很麻烦,以前oracle的市场份额很大,所以不用考虑和其他数据库小弟的交互问题,现在今非昔比,sql server这些中小数据库近来状态神勇,市场份额攀升,oracle很多时候需要与其交互,这时,繁琐的透明网关方式就很不给力,而且,我看oracle暂时也不会出其他更好的解决方案吧,大家如何以为呢
心中的彩虹 2011-01-12
  • 打赏
  • 举报
回复
透明网管 谷歌搜下 耐心点
灰哥 2011-01-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lxyzxq2008 的回复:]
Oracle与SQL Server的互连
 

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

而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还……
[/Quote]

顶,楼上这哥们肯定是在哪摘来的.
3、安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:

HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"

步骤3,你这样写楼主是弄不出来的,实际的写法是:
HS_FDS_CONNECT_INFO=hostname<主机名>//pubs<数据库名>
这样才会看到结果...
lxyzxq2008 2011-01-10
  • 打赏
  • 举报
回复
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;

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行。

------------ 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;

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、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。
ckdmff101429 2011-01-10
  • 打赏
  • 举报
回复
通过第三方软件就可以了
灰哥 2011-01-09
  • 打赏
  • 举报
回复
呵呵,透明网关 ,现在正在学习,不过还没弄出来!哎....真杯具 ;
sy_ivysunlenovo 2011-01-07
  • 打赏
  • 举报
回复
1楼 顶, 透明网关 ,也不是麻烦
小谷 2011-01-04
  • 打赏
  • 举报
回复
我也想知道。。
lyhliuyanhong 2010-10-29
  • 打赏
  • 举报
回复
非常感谢
hx_java 2010-10-29
  • 打赏
  • 举报
回复
配置透明网关,可以实现你要的功能. 不过比较繁琐,不知有没简单的做法
本课程根据讲师十多年在世界500强外企的生产环境中的SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程中不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境中实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境中,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业中较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验中SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧