MSFCサービスとしてのSQL Server サービスの再起動

MSFCのクラスタリソースとして動作しているSQL Server や SQL Server Agentを再起動する場合、
必ずフェールオーバクラスタマネージャ上から行う必要があります。

コントロールパネルのサービス一覧やnetコマンドで直接サービスを停止してはいけません。

なぜなら、クラスタリソースとして動作しているSQL Server や SQL Server Agentは
クラスタサービスの管理下に置かれています。

クラスタサービスからオフライン/オンライン操作を行うと、以下のように要求が走ります。

1.クラスタサービス → SQL Server クラスタリソース へクラスタリソースのオンライン/オフライン要求が走ります。
2.SQL Server クラスタリソース → サービスコントロールマネージャ へサービスの開始/停止要求が走ります。
3.サービスコントロールマネージャ → SQL Server サービス へサービスの開始/停止要求が走ります。


コントロールパネルのサービス一覧やnetコマンドで直接サービスを停止した場合、
停止要求は直接 サービスコントロールマネージャへ送られます。

クラスタサービスから見るとオフライン要求を掛けていないにもかかわらずサービスが停止しているため、
クラスタリソースが失敗したと見なされます。
その結果クラスタリソースの状態としては「失敗」となり、
復旧させるためクラスタサービスによってオンライン要求が出されます。

ただし、ここにサービスの依存関係が絡んできます。
SQL Server Agent クラスタリソースはSQL Server クラスタリソースに依存し、
SQL Server Agent サービスはSQL Server サービスに依存しています。

何れかのサービスをサービス一覧やnetコマンドで停止した場合、
これらの依存関係が絡み合ってサービスの停止/開始/失敗が連鎖的に発生する可能性があります。

こうなると、フェールオーバしてしまったり予期せぬ動作にが起きることになります。

正しい手順で再起動を行うようにしましょう。



未分類
NRBMをフォローする
年中暁を覚えず・・・・

コメント

タイトルとURLをコピーしました