連載
» 2016年08月04日 05時00分 UPDATE

SQL Serverトラブルシューティング(11):SQL Serverが正しく再起動しなくなってしまった(起動トラブル)

本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は「SQL Serverが正しく再起動しなくなった場合の対処方法」を解説します。

[椎名武史,ユニアデックス株式会社]

連載バックナンバー

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。

トラブル 06(カテゴリー:起動):SQL Serverが正しく再起動しなくなってしまった

 「Windows Server 2012」のクラスタ環境上に「SQL Server 2016 RTM」をインストールした環境を想定して解説します。

トラブルの実例:システムの可用性をテストするために、WindowsのタスクマネージャーからSQL Serverプロセスを強制的に終了させて、意図的に障害を発生させた。

 当初は、強制的に終了させたSQL Serverが正常に再起動されることを確認したが、ある段階で自動的に再起動しなくなってしまった。フェールオーバー クラスター マネージャーで確認すると、SQL Serverのリソースに「失敗」と表示されていた(図6-1)。

photo 図6-1 フェールオーバー クラスター マネージャーで確認すると、SQL Serverのリソースが「失敗」と表示されていた

トラブルの原因を探る

 Windowsのシステムログ(「イベントビューアー」→「Windows ログ」→「システム」)を確認すると、エラー1254の「クラスター化された役割’SQL Server(MSSQLSERVER)’がフェールオーバーのしきい値を超えました。割り当てられたフェールオーバー期間内に試行できる構成済みのフェールオーバー回数の上限に達したため、エラー状態のままとなります」というメッセージが記録されていました(図6-2)。

photo 図6-2 Windowsのシステムログを確認すると、「エラー1254」が発生していた

 「構成済みのフェールオーバー回数の上限」について、フェールオーバー クラスター マネージャーから設定内容を確認してみます(図6-3)。

photo 図6-3 フェールオーバー回数は、指定した期間内の最大エラー数が「1」、期間は「6時間」で設定されていた

 今回の例では、2ノードでクラスタを構築しています。そして上記の設定は、6時間に1回までのエラー(エラーテストの実施も含む)ならば、通常通り再起動を試みます。しかし、2回以上エラーが発生したら「もう無理(再起動するだけでは直らない)」とみなし、再起動をせずに「失敗した状態のままにする設定」となっていることが分かりました。

 これは、意図したエラーテストであっても……1回とカウントされます。入念に準備したがゆえに発生してしまう、意外な落とし穴となるトラブルです。

解決方法

 この「もう無理」とみなす“しきい値”である「エラー回数」と「判定期間」を、図6-3のフェールオーバー クラスター マネージャーより変更します。テスト時には、エラー回数を少し多めにするか、期間を短めにしておくとよいでしょう。ちなみにエラー回数は、クラスターサービスを再起動することでもリセットできます。

 なお、このトラブルは、フェールオーバー クラスターの機能を使う「AlwaysOn可用性グループ」でもよく発生するので、ご注意ください(*1)。


「SQL Serverサービスが自動的に再起動しなくなった」場合の解決手順

  1. イベントベントビューアー(「Windows ログ」→「システム」)を確認して、エラーの内容や原因を調べる
  2. (本例の場合は)指定した期間内の「許容する最大エラー数」の値を増やす
  3. (本例の場合は)クラスターサービスを再起動する


本トラブルシューティングの対応バージョン:SQL Server 全バージョン

筆者紹介

内ヶ島 暢之(うちがしま のぶゆき)

ユニアデックス株式会社所属。Microsoft MVP Data Platform(2011〜 )。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を行っていた。2016年4月よりIoTビジネス開発の担当となり、新しい仕事に奮闘中。ストレッチをして柔らかい身体を手に入れるのが当面の目標。

椎名 武史(しいな たけし)

ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。