SQL Server サービスが OS の起動時に自動起動してこなかった場合の対処策について


こんにちは。SQL Server サポート チームです。

 

今回は、OS の起動時に、 SQL Server サービスの起動が指定時間内に開始要求または制御要求に応答しないことでサービスの起動に失敗する場合の対処策についてご紹介します。


事象
SQL Server サービスのスタートアップの種類が自動となっている場合、OS起動時に SQL Server サービスも自動で起動されます。
その際に、サービス起動タイムアウト時間である30秒以内にサービスが起動できない場合があり、システム イベントログに次のようなエラーが記録され、起動に失敗します。

 

種類 : エラー

ソース : Service Control Manager

イベント ID : 7009

説明 :

MSSQLSERVER サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。

 

種類 : エラー

ソース : Service Control Manager

イベント ID : 7000

説明 :

« MSSQLSERVER サービスを、次のエラーが原因で開始できませんでした:

そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。 »


原因

SQL Server サービスの自動起動がタイムアウトに達する原因に、以下のようなものがあります。

 

1. OS 起動直後の CPU や Disk の高負荷
OS 起動時には、多くのサービスが同じタイミングで起動するため、CPU や Disk への負荷が高い状態となります。
このような状態では、SQL Server サービスは起動時に Disk からの読み込みも多く、CPU や Disk の高負荷の影響を受けやすいため、SQL Server サービスの起動に時間がかかり自動起動が失敗する場合があります。


2. サービス起動時のドメインコントローラーとの通信遅延
SQL Server の サービスアカウントがドメインユーザーの場合、サービス起動時にまだドメインコントローラーとの通信が確立出来ていない時にも起動アカウントのログインができずサービスの起動に至らないため、自動起動が失敗することがあります。

 

対処策
このような場合、SQL Server サービスのスタートアップの種類を「自動(遅延開始)」に変更することで、起動時に CPU や Disk へ負荷が集中するタイミングを避けて