Oracle11g通过ODBC连接MSSQLServer备忘
1、
环境说明
1)
Oracle及MSSQLServer服务器操作系统均为Windows Server 2008 r2
Enterprise;
2)
Oracle版本为Oracle Database 11g Enterprise Edition Release
11.2.0.1.0 - 64bit Production;
3)
MSSQLServer版本为mssqlserver2008;
2、
建立数据源
1)
开始菜单,管理工具,数据源;
2)
选择系统DSN,点击右侧“添加”,弹出界面选择SQL Server,点击“完成”,进入下一步;
3)
给你的数据源起个名称、描述,以及填写MSSQLServer数据库IP地址;
4)
点击“下一步”,如下图所示,输入用户名及密码,点击“下一步”,查看是否需要更改默认数据库,选择好之后,继续点击“下一步”;
5)
进入下一界面,如下图所示,基本不需要更改,直接点击“完成”即可;
6)
弹出界面可以看到配置的ODBC信息,点击“测试数据源”,如果没有问题的话,则会提示“测试成功”,如果失败,则检查以上步骤是否存在错误;
到此,数据源配置完成。
3、
Oracle数据库配置调整
1)
配置initdg4odbc.ora文件,另存一份文件,命名为initdg4.ora,比如这里我们命名为initdg4mssql.ora;
路径为:\app\Administrator\product\11.2.0\dbhome_1\hs\admin
编辑此文件,内容如下:
HS_FDS_CONNECT_INFO = MSSQLServer—配置成数据源名称
HS_FDS_TRACE_LEVEL = 0
2)
监听文件调整:文件路径\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
在SID_LIST_LISTENER新增一段
(SID_DESC =
(SID_NAME = dg4mssql)—配置成initdg4mssql.ora文件init后面的字串
(ORACLE_HOME =
D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = dg4odbc)
)
3)
TNS新增连接串文件路径\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
配置为:
mssql
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.120)(PORT =
1521))
(CONNECT_DATA =
(SID = dg4mssql)
)
(HS = OK)
)
4、
测试连接
1)
创建dblink
create public database link
mssql connect to user identified by "password" using
'mssql';
2)
查询MSSQLServer开放的表或试图
select
* from dbo.View@mssql
可以查询到,则说明完成配置。
备忘:好久没有跨异构数据库做数据交互了,MSSQLServer访问Oracle还是相对简单一点,做过好几次都没有出过问题,这次Oracle访问MSSQLServer竟然出现问题了,以前配置几次也没有问题。主要的还是,顺利的配置下来,成功了遇到的问题就少。这次开始的时候我是想通过透明网关来做,之前也是这么做过一次,可是这次配置完透明网关之后,监听总是会出问题。查了一下,原来网上一直都有人遇到这样的问题。找了一些网上的方案,按照步骤一步一步操作,发现还是不行。索性就放弃了这一方式,改用ODBC数据源的方式,毕竟个人对数据源配置更为熟悉,也认为更加简单。
第一次配置的时候,仍然是报错的,ora-28545,发现网上也是一堆这样的提问,解决方式各不相同。直接推到重来,最终解决了这个问题,特此备忘一下。
加载中,请稍候......