SQL2008構成マネージャーの、WMIプロバイダエラー


ニッチな話題ですが、どちらかのトラブル対応に役立つかと思い。

Windows 2003 + SQL 2008 SP1 CU3の開発サーバーで遭遇したエラー。原因は不明ですが、今後はSP2で治ってるかの検証をしたいところ。なお不安が無いように伝えると、運用には問題ないと考える解決方法(後述)が持ててます。

問題点

SQL Server 構成マネージャー(以下、SSCM)で、SQLServerAgentのサービス開始モードを、「無効→手動、自動」に出来ないという問題に遭遇。

再現手順:

  1. SSCMで、SQL Server Agentのサービス開始モードを「無効」*1にして、適用
  2. SSCMで、SQL Server Agentのサービス開始モードを「自動」にして、適用
  3. WMIプロバイダーのエラーが表示され、サービス開始モードを変更できない

*1:「SQL Server 構成マネージャー」 – 「SQL Server Agent」 – 「サービスタブ」 – 「開始モード」

エラーメッセージは次の通り。WMIでサービスコントロールを失敗してる感じ。

WMI プロバイダ エラー: リモート プロシージャ コールに失敗しました [0x800706be]

WMI Provider Error: 0x800706be

このときアプリケーションログには、次のログが残ってました。これが判断を遅らせた要因かも・・・

イベントの種類: エラー
イベント ソース: Application Error
イベント カテゴリ: (100)
イベント ID: 1000
日付: yyyy/mm/dd
時刻: hh:mm:ss
ユーザー: N/A
コンピュータ: SERVER
説明:
エラー発生アプリケーション wmiprvse.exe、バージョン 5.2.3790.4455、エラー発生モジュール ntdll.dll、バージョン 5.2.3790.4455、エラー発生アドレス 0x0002fdf9

解決策

対応に少々悩みましたが、最終的に次の方法で、前述のエラーを回避できると判断しました。

  1. SSCMを離れ、サービスを起動
  2. サービスの「SQL Server Agent (MSSQLSERVER)」で、スタートアップの種類を「無効→手動」して、適用
  3. SSCMを起動 (すでに起動済みだったら、最新の状態に更新)
  4. SSCMで、SQL Server Agentのサービス開始モードを「手動→自動」にして、適用
  5. エラーなく、変更が完了する

SSCMでの「自動→無効」、「手動→自動」は可能でしたので、最終的にデフォルトの「自動」に戻すのは、マイクロソフト推奨のSSCMで行うという運用は可能でした。確かSSCM利用は、レジストリ変更の可能性もあるからとか?今回のスタートアップの種類変更時に、レジストリ変更があるかは不明ですが、念には念を入れと思って、この手順を使っています。

番外編

対応時に、アプリケーションログに「wmiprvse.exe」がエラー発生アプリケーションだと出てたので、サービスの「Windows Management Instrumentation」を停止してみたりしてました。後に、WMIの再起動が不要な事に気づくのですが・・・

この時SSCMを起動中で、上記のサービスを再起動すると次のエラーが出ます。こんな時は、SSCMを再起動すれば、再起動した後のWMIプロセスと通信が出来て問題ないです。あたりまえと言えば当たり前ですが、パニクってる時に迷いにつながったので。。。

WMI プロバイダ エラー:起動したオブジェクトはクライアントから切断されました。 [0x80010108]

  1. #1 by gucci リング on 2013/7/13 土曜日 - 16:46:09

    服 通販

Comments are closed.