こんにちは。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 サービスの自動起動がタイムアウトに達する原因として、OS
起動直後の CPU
や Disk
の高負荷がございます。
OS 起動時には、多くのサービスが同じタイミングで起動するため、CPU
や Disk
への負荷が高い状態となります。
このような状態では、SQL Server
サービスは起動時に Disk
からの読み込みも多く、CPU
や Disk
の高負荷の影響を受けやすいため、SQL Server
サービスの起動に時間がかかり自動起動が失敗する場合があります。
対処策
このような場合、SQL Server
サービスのスタートアップの種類を「自動(遅延開始)」に変更することで、起動時に
CPU や Disk
へ負荷が集中するタイミングを避けて SQL Server
サービスを起動することが可能となります。
OS の起動時に SQL Server
サービスの自動起動に失敗することが無い場合、この対応は不要ですが、自動起動が失敗する場合には対処策として実施いただき、状況が改善されるかご確認ください。
以下、変更手順です。
1. [ファイル名を指定して実行]
で、services.msc
を指定し、サービス
ウィンドウを起動します。
2. 「SQL Server (MSSQLSERVER)」
サービスを右クリックし、[プロパティ]
を選択します。
※ MSSQLSERVER
は既定のインスタンスの場合の例です。実際に設定するインスタンスのサービスを選択ください。
3. "スタートアップの種類"
で [自動(遅延開始)]
を選択し [OK]
をクリックします。

※ SQL Server
サービスは、既定で SQL Server Agent
サービスと依存関係がありますので、SQL Server Agent
サービスも "自動(遅延開始)"
に変更ください。また、その他のサービスでも、SQL Server
サービス、または SQL Server Agent
サービスに依存していることで起動に失敗している場合、そのサービスも "自動(遅延開始)"
に変更ください。
本設定により、OS起動時に自動起動されるサービスから2分遅れて対象のサービスの起動が開始されるようになりますので、指定時間内の起動に失敗する状況が改善することが期待できます。
なお、SQL Server
サービスと依存関係は設定されていないものの SQL Server
を利用するアプリケーションにおいて、OS
再起動後に SQL Server
サービスが起動するまでの時間が遅くなることにより、アプリケーション側で SQL Server
への接続エラーなどが発生する可能性があります。SQL Server
を利用するアプリケーションの OS
起動後の開始タイミングについても念のためご確認ください。
※ OS
の起動時に SQL Server
サービスの起動に失敗しない環境では、上記の対処策は不要です。