SQL Server 2008 R2 链接 Oracle 10g

在SQL SERVER 2008 R2下用Windows
身份认证的登录名创建了一个访问ORACLE数据库的链接服务器xxxxx,测试成功,木有问题,但是其它登录名使用该链接服务器时,报如下错误:

背景:

首先sqlserver 链接oracle可以通过两个访问接口:

消息 7302,级别
16,状态 1,第 1 行

     全新服务器,需要增加性能监控,发现无法通过powershell读取性能指标

“MSDAORA” 和“OraOLEDB.Oracle”

Cannot create an
instance of OLE DB provider “OraOLEDB.Oracle” for linked server
“xxxxxx”.

解决方法:

1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for
Oracle提供的,这里建议不使用此接口进行链接。通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型CLOB、BLOB字段)时会报这个错误“
链接服务器””的 OLE DB 访问接口 “MSDAORA” 返回了消息 “发生了一个 Oracle
错误,但无法从 Oracle 中检索错误信息。”。 链接服务器””的 OLE DB 访问接口
“MSDAORA” 返回了消息 “数据类型不被支持。”。 消息 7321,级别 16,状态
2,第 1 行 准备对链接服务器 “” 的 OLE DB 访问接口 “MSDAORA”
执行查询”select * from SYS_MESSAGE”时出错。”

 

  • Open the Registry Editor by going to the Start Menu and selecting
    Run…, then type “regedit”, and click the OK button.
  • Navigate to the
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurePipeServerswinreg registry
    key.
  • Right click on the “winreg” key and select Permissions. Add users or
    groups to which you want to grant Read access.
  • Exit Registry Editor and restart Windows.

2、“OraOLEDB.Oracle” 访问接口是由oracle 的Oracle Probider for OLE DB
驱动提供的。它解决了两个数据库类型不一致的的问题。而且如果需要使用分布式事务,必须使用它来创建链接服务器。后文会有详细介绍。 在创建之前,在SQLSERVER中,链接服务器->访问接口->OraOLEDB.Oracle->右键属性,选中
“Allow inprocess”
(中文为:允许进程内) 这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。如未设置会报如下错误: “无法初始化链接服务器
“null” 的 OLE DB 访问接口 “OraOLEDB.Oracle” 的数据源对象”

此时需要在“服务器对象”——>“链接服务器”——>“访问接口”下,找到OraOLEDB.Oracle选项,单击右键选择属性,然后在访问接口选项下勾选“允许进程内”(Allow
inprocess)。即可解决上面问题,有时候,可能需要重新新建此链接服务器。

 

图片 1

服务器 windows server 2008 r2 64位  或 win 7 enterprise 64位

 

  1. 服务器上需要安装Oracle
    64位的客户端(

老外给出了一个解决这个问题的步骤,相当详细严谨,几乎面面俱到。可以作为参考学习的好资料:

安装完成后SQL
Server的访问接口上会新增”OraOLEDB.Oracle”(安装32位客户端,看不到)。

Ran into this issue where the linked
server would work for users who were local admins on the server, but not
for anyone else. After many hours of messing around, I managed to fix
the problem using the following steps:

安装:Windows Server2008 R2下安装Oracle
10g

  1:Run “dcomcnfg.exe”. Navigate to
“Component Services -> Computers -> My Computer -> DCOM
Config”.

  1. 配置”OraOLEDB.Oracle”属性->启用项“允许进程内”;

  2. 新建链接服务器(名称 自定 :ORA_LINK)

  3. 填写链接服务器名称->选择访问接口”Oracle Provider for OLE DB”

  4. 填写产品名称->Oracle

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website