分享
 
 
 

在Oracle数据库中连接异种数据源

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

程序运行效果截图:

由于历史的原因,在多数企业都同时存在多个数据库平台,在每个数据库平台上都运行着相关的一套或多套应用。随着单位业务不断扩大,如何在不影响现有应用运行的前提下,快速有效地整合这些分布在单位内部不同数据库平台上的数据,是一个困扰CIO们的问题。面对这一问题,现有解决方案大致可分为以下两种:

1.在应用程序上建立连接不同数据源的数据连接,这样做要求程序员分清哪个连接是对应哪个数据库的,而且假如设计时涉及到存储过程还要按照不同数据库的要求分别编写,加重了程序员的要求。

2.在数据库中设立快照,定时把其他数据源的数据复制到本地数据库,这样虽然解决了前一种方法中不同数据源的问题,但是由于是定时复制,数据不能实时同步,在实时性要求高的应用中这种方法便不能使用。

由于上述两种方法都存在一定的缺点,这里介绍一种Oracle提供的解决oracle数据库与异种数据源的连接问题的解决方案—Oracle的异构服务(Heterogeneous Services)。

异构服务

“异构服务”是集成在Oracle 8i数据库软件中的功能,它提供了从Oracle数据库访问其他非Oracle数据库的通用技术。熟悉Oracle的读者都很清楚,Oracle提供通过建立DB Link的方法访问非本地数据库,而“异构服务”提供通过建立DB Link使你能够执行Oracle SQL查询,透明地访问其他非Oracle数据库里的数据,就像访问Oracle远程数据库一样。“异构服务”分为两种:

1. 事务处理服务(Transation Service):通过事务处理服务,使用户在访问非Oracle数据库中支持事务处理功能。

2. SQL服务: 通过SQL服务,使用户直接在Oracle数据库中执行对非Oracle数据库的各种SQL语句。

根据异构服务代理程序的不同,“异构服务”连接方式可以分为透明网关和通用连接两种。

透明网关(Transparent Gateways) 透明网关使用Oracle提供的特定网关程序来设置代理,例如连接SQL Server则必须要有SQL Transparent Gateway for SQL Server。

通用连接(Generic Connectivity) 通用连接又分为ODBC连接和OLE DB连接两种,其连接方法和透明网关没有本质区别,只不过通用连接是和数据库一起提供的功能,你不需要向Oracle购买相关的透明网关程序。

连接实例

这个实例的应用环境是Oracle 8.1.7,操作系统windows 2000 Server英文版,采用通用连接的ODBC for SQL Server连接SQL Server 2000中文版。安装步骤如下:

1. 安装HS部件。

缺省情况下,HS服务是和Oracle 8.1.7一起安装的,你可以查询SYS用户下是否存在HS_BASE_CAPS视图,以确认HS部件是否安装,假如没有可以用相关的安装盘进行安装。

2. 配置ODBC系统连接字。

在控制面板选择“Data Sources (ODBC)”,在“系统DNS”内配置ODBC for SQL Server连接字(dnsora2sql)。

3.配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN。

在这个文件中增加如下代码:

Lnk2sql =

(DESCRipTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521)))

(CONNECT_DATA =

(SID = hs4sql) < 服务的SID名称,要和Listener里配置的sid相同)

(HS=OK) <打开HS服务选项

)

4.配置listener.ora,它位于ORACLE_HOME\NETWORK\ADMIN。

在这个文件中增加如下代码:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = hs4sql) <服务的SID名称,与tnsname名称相对应

(ORACLE_HOME = C:\oracle\ora9201)

(PROGRAM = hsodbc) <要使用的HS服务程序,假如使用OLE DB,程序名为hsole )

)

5. 重新启动Oracle listener。

6. 编辑位于ORACLE_HOME\HS\ADMIN内init.ora,这里是iniths4sql。

修改如下两行代码:

HS_FDS_CONNECT_INFO = dnsora2sql <ODBC系统名

HS_FDS_TRACE_LEVEL = 0

7. 创建DATABASE LINK。

create database link ‘ora2sql’ connect to sql1 identified by sql1 using ‘lnk2sql’;

8. 测试连接。如:

SQL> select * from region@ora2sql;

到此我们已经完成了使用ODBC连接SQL SERVER的配置工作。

总体上说,异构服务扩展了Oracle数据库连接异种数据源的能力,加强了企业数据的整合,是一个快速有效经济地整合企业内部异构数据的解决方案。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有