web-dev-qa-db-ja.com

「OLE DBプロバイダー「MSOLAP」が登録されていません」を修正する方法?」

リンクサーバーをSSASに登録するために使用しているコードは次のとおりです。

USE [master];
GO

EXEC master.dbo.sp_addlinkedserver
    @server = N'ServerAlias',
    @srvproduct = N'',
    @provider= N'MSOLAP',
    @datasrc= N'ActualServerName',
    @catalog = N'DatabaseName';

OPENQUERYを使用してMDXクエリを実行しようとした場合、または上記のコードを実行した後にManagement Studioで[テスト接続]コマンドを使用した場合、エラーが発生します。

メッセージ7403、レベル16、状態1、行1
OLE DBプロバイダー "MSOLAP"は登録されていません。

このプロバイダーはSQL Serverの一部としてインストールされるため、これはかなり奇妙です。

  • 同じボックスの他のすべてのインスタンスでも失敗します-2008 R2 RTMおよび2008 R2 SP1の合計5つのインスタンス。正確には覚えていませんが、ある時点で、問題ボックスが2008から2008 R2にアップグレードされた可能性があります。
  • それは、2005、2008 R2、および2012の合計約12のインスタンスを持つ1つのボックスを含む、2008 R2を使用する他のいくつかのボックスで成功しました。32ビットと64ビットの両方を試して成功しました。

私は このMicrosoft KB記事 を見て、正確な問題を説明しています。ただし、適用できる解決策はありません。私がインターネット上で見つけたこのエラーの他のすべての例は、リンクサーバーを誤って定義している誰かが原因でしたが、これも適用できません。

これは(ありがたいことに)開発サーバーなので、ほとんどすべてのオプションがテーブルにあります。修理はこれを修正しますか?レジストリに問題があるようです。

(権限がないため、自分でメンテナンスを行うことができないため、最初に指示を求めています。)

4
Jon Seigel

SQL Server Analysis Servicesドライバーは、サーバーにSSASをインストールしない限り、通常のSQL Serverインストールの一部として実際にはインストールされません。

MSOLAPドライバーは SQL Server機能パック からダウンロードしてインストールできます。次に、リンクサーバーを作成できます。 64ビットSQL Serverがある場合は64ビットインストールを、32ビットSQLサーバーがある場合は32ビットをインストールすることを忘れないでください。

7
mrdenny

Msolap * .dllを検索して、インストールされているプロバイダーを見つけ、regsvr32を使用してそれらを登録します。

次に例を示します(ファイルの場所は異なる場合があります)。

C:\>regsvr32 "C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\130\msolap130.dll"

C:\>regsvr32 "C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\110\msolap110.dll"

また、64ビットOSを使用している場合:

C:\>regsvr32 "C:\Program Files\Microsoft Analysis Services\AS OLEDB\120\msolap130.dll"

また、コマンドプロンプトをAdministratorとして実行していることを確認してください。

2
GZALiquidSwords