SQL SERVER中,用MSDAORA访问接口,访问Oracle失败
发表在数据库答疑区 2017-02-10
是否精华
版块置顶:

错误提示:因为 OLE DB 访问接口 'MSDAORA' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。

网上百度的解决方案主要是:下载ACE.Oledb.12.0 for X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0

我现在已经下载安装了该64位驱动,但不知道连接字符串是什么,怎么改。另外比较疑惑的是这个“ACE.Oledb.12.0”明明是给access和office提供驱动的,真的能用它访问Oracle吗?


分享到:
精彩评论 1
小禾斗
学分:7338 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2017-02-10
沙发

1、首先必须安装好 Oracle Services For Microsoft Transaction Server

(版本与你的oracle版本一致)

它是ODAC中的一部分,因为oracle本身是不支持分布式事务的,通过这个驱动开放与微软的事务服务。 绝大多数人配置好MSDTC并解析好名称后仍会报“无法启动分布式服务”就是因为这个驱动没装。

2、必须用Oracle Probider for OLE DB 驱动提供的OraOLEDB.Oracle访问接口来创建链接服务。(这个可能是因为microsoft提供的访问接口并不存在oracle事务机制,所以只能通过oracle提供的访问接口)

3、MSDTC设置。
   打开"管理工具--组件服务",依次打开"组件服务--计算机",在"我的电脑"上点击右键。在MSDTC选项卡中,点击"安全配置"按钮,在安全配置窗口中做如下设置: 
    -->选中"网络DTC访问"; 
    -->在客户端管理中选中"允许远程客户端""允许远程管理";
    -->在事务管理通讯中选"允许入站""允许出站""不要求进行验证";
    -->保证DTC登陆账户为:NT Authority\NetworkService ;

4、双方启动MSDTC服务 
   MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。

5、打开双方135端口
   MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。

6、在事务开始前加入set xact_abort ON语句
   对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。

7、服务器名解析
  在创建链接服务器时@server或者@datasrc设置为sql server服务器名时,需要做名称解析,就是把服务器名解析为ip地址。

在"C:\WINDOWS\system32\drivers\etc\hosts"文件中增加一条记录:

   xxx.xxx.xxx.xxx 服务器名

8、远程服务器上的名称解析
  分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:

在远程服务器的在"C:\WINDOWS\system32\drivers\etc\hosts"文件中增加一条记录:
     xxx.xxx.xxx.xxx 发起服务器名

通过以上的一些列操作应该差不多了,例如:

1: -- 分布式事务测试
2: set xact_abort ON
3: begin tran
4: 
5: insert into openquery(OraclePolice,'SELECT * FROM ALINK_SERVER_TEST ') values('456000','TESTtest','');
6: 
7: if @@ERROR <>0
8: 
9: rollback tran;
10: else
11: 
12: commit TRAN;
13: -- 语句执行成功


首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照