SQL Serverのサービスが、サーバーマシンの再起動のタイミングで止まってしまう - SQL Server

SQL Serverのサービスが、Windowsの再起動のタイミングで止まってしまう現象について紹介します。

現象

今まで利用できていたSQL Serverに接続できなくなります。
早朝に気づくことが多いため、SQL Serverのマシンのリブートで発生する可能性が高そうです。

SQL Server Configuration Manager を起動し、サービスの稼働状態を確認すると、SQL SeverとSQL Server エージェント が停止していることがわかります。

暫定対処

SQL Serverのサービスを開始すると利用できる状態になります。SQL Server Configuration Manager でSQL Serverのサービスをクリックして選択し、右クリックします。 下図のポップアップメニューが表示されますので[開始]の項目をクリックします。


SQL Server と SQL Server エージェントのサービスを起動します。

調査

イベントビューアーでSQL Serverのログを調査します。[システム]のログに、次のログが記録されています。
エラーログの内容
Service Control Manager
MSSQLSERVER サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。


エラーログの内容
Service Control Manager
MSSQLSERVER サービスを、次のエラーが原因で開始できませんでした:
そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。


エラーログの内容
Service Control Manager
SQLSERVERAGENT サービスは、次のエラーが原因で開始できなかった MSSQLSERVER サービスに依存しています:
そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。


起動に時間がかかりすぎてタイムアウトしているように見られます。

対処法1:マシンのスペックアップ

マシンの再起動時に高負荷状態が長く続くことで、上記のエラーが発生するため、マシンのスペックアップを検討します。
後述の方法でも対処できますが、根本的にはマシンを更新するのが良いのではないかと考えられます。

対処法2:サービスを遅延起動する

サービスを遅延起動することで、高負荷状態のときにサービスを起動しないように設定できます。

[コンピューターの管理]を起動し、左側の[サービスとアプリケーション]ノード内の[サービス]ノードをクリックして選択します。 下図の画面が表示されます。


右側のエリアから "SQL Server" のサービスの項目を探しクリックして選択します。選択状態で右クリックしポップアップメニューを表示します。 メニューの[プロパティ]の項目をクリックします。


プロパティダイアログが表示されます。


[スタートアップの種類]の項目のコンボボックスをクリックして開きます。ドロップダウンリストが表示されますので、 [自動 (遅延開始)]の項目をクリックして選択します。


[スタートアップの種類]を"自動 (遅延開始)"に設定できました。ダイアログの[OK]ボタンをクリックしてダイアログを閉じます。


[SQL Server]のサービスのスタートアップの種類が "自動 (遅延開始)"に変更できました。


同じ手順で、[SQL Server エージェント]のサービスも "自動 (遅延開始)" にスタートアップの種類を変更します。


マシンをリブートして、SQL Serverが問題なく起動することを確認します。 また、しばらく継続して利用し、SQL Serverが起動しない状態にならないことを確認します。

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-04-11
作成日: 2021-08-11
iPentec all rights reserverd.