oracle 11g访问ms sqlserver/mysql(一)

3683阅读 0评论2012-05-04 zhongtang
分类:Oracle

by jdstkxx on 2012 年 5 月 3 日

1.环境

oracle 服务器:AIX 6.1,oracle11g r2,ip :192.168.1.1

sqlserver服务器:windows2003 , ms sql server2000 ip:192.168.1.4

mysql 服务器:windows2003 ,mysql5 , ip:192.168.1.6

2.需求

在oracle中访问sqlserver及mysql,进行数据同步,单向从sql同步到oracle,只有select,没有update

3.解决方法

采用oracle的gateway,在9i中叫transparent gateway(透明网关),现在统一叫gateway。

具体如下图,可以看到11g的gateway有专门for sqlserver/informix/sybase的,但是没有for mysql的,所以mysql只能用for odbc的方式转接下实现。

做法:决定搭建专用的中间服务器(win2003 ,ip:192.168.1.2 ),用来运行oracle gateway。

这样做至少有几大好处:1.不动数据库服务器,不用担心影响其他应用。2.支持扩展及迁移,可以看到gateway for odbc方式扩展性非常强,只要ODBC能连接的数据库都可以连接,例如excel,access,sqlserver,甚至是其他oracle,当然包括本例中的mysql;3.跨版本连接,例如数据库是11g,gateway可以是9i,避免很多复杂的问题。

4.原理

数据逻辑如下:oracle client – oracle server – gateway – sqlserver/mysql,从上面的逻辑也基本上可以推断出需要修改的地方。

区别在于sqlserver在中间层是直接调用sqlserver本身的驱动访问,而mysql是通过odbc访问。

5.安装

oracle database gateway for odbc — 直接集成在oracle 服务器端中,到官网选择服务器端下载,安装时默认选企业版安装,即可自动安装上该模块(同时鄙视下oracle 11g r2的安装设定,以前的高级安装没有了,只有企业版、标准、个人版之类,定制选择也不像以前可以完全定制,所以只好把oracle装上,然后把服务禁掉)。验证方式:查看oracle安装目录下是否有hs目录,例如:C:\app\Administrator\product\11.2.0\dbhome_1\hs

oracle database gateway for sqlserver — 需要单独下载,在oracle官网中有下述一行提示。
- See All, page contains unzip instructions plus Database Client, Gateways, Grid Infrastructure, more

鄙视下oracle,这个设置给我折磨近2小时,oracle自带的电子书、百度、google一顿查,后来总算受别人启发,上官网仔细挨个看了看,发现了这个坑爹的设定,所以gateways是一个500多M的单独文件。

前面都写完,下次再总结oracle gateway的具体配置方法。

上一篇:Oracle的Flashback用法汇总
下一篇:oracle 11g访问ms sqlserver/mysql (三)