none
クラスタ環境下でのNETコマンドを使用したサービスの再起動方法について RRS feed

  • 質問

  • いつも拝見させていただいております。

    表題の件について、現在問題が発生し調査しています。

    環境

    ・Windows 2008 R2(MS Failover Clusteringによる2台クラスタ構成)

    ・SQLSERVER 2008

    現象

    以下のサービスについて、NETコマンドを使用した再起動を実行中

    SQLSERVERデータベースがある共有ディスク(Rドライブ)が突如

    稼動サーバから待機サーバに移動します。

    ・対象サービス

     MSSQLSERVER

     MSSQLSERVER AGENT

    SQLSERVERについての勉強不足の中、原因解明を急いでいるため

    皆さんのお知恵を頂きたいと思っております。

    宜しく御願いいたします。

     

     

    2011年8月23日 0:00

すべての返信

  • 追記いたします。

    エラー時、イベントログ(アプリケーション)には以下のメッセージが表示されます(抜粋)。

    エラー,,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] CheckServiceAlive: Service is dead
    "
    エラー,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] CheckServiceAlive: Service is dead
    "
    エラー,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] OnlineThread: Error 1 bringing resource online.
    "
    エラー,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] OnlineThread: service stopped while waiting for QP.
    "
    エラー,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] CheckServiceAlive: Service is dead
    "
    エラー,MSSQLSERVER,19019,フェールオーバー,"[sqsrvres] CheckServiceAlive: Service is dead

    同時刻にてイベントログ(システム)に以下のメッセージが表示されます(抜粋)。

    エラー,Microsoft-Windows-FailoverClustering,1069,リソース コントロール マネージャー,クラスター化されたサービスまたはアプリケーション 'SQL Server (MSSQLSERVER)' のクラスター リソース 'SQL Server' は失敗しました。
    情報, Service Control Manager,7036,なし,SQL Server (MSSQLSERVER) サービスは 停止 状態に移行しました。

    ログ等から確認できる内容から判断すると、何れかのサービス停止処理に失敗することにより

    発生している可能性が高いと思っております。

    皆様のご意見頂戴したく、宜しく御願いいたします。

     

    2011年10月6日 15:18
  • この内容からわかることは、SQL Server リソースが停止状態(Dead) であることを、クラスタ側が検知(CheckServiceAlive)して、指定された閾値(再起動、フェールオーバー)に従って、動作しているように見えますね。

    ちなみに .NET から SQL Server サービスを直接再起動しているのであれば、上記のような現象は起こり得ると思います。

    クラスタ環境の場合は、クラスタ側から再起動を実施する必要があると思います。(クラスタリソースのオフライン、オンラインが再起動と同じことになると思います。)

    コマンドからの停止方法はやったことがないのでわからないのですが、おそらくコマンドもあるのではないかと。(Power Shell などで)

    • 回答の候補に設定 山本春海 2011年12月15日 9:09
    2011年10月7日 17:25