SQL Server サービスが OS の起動時に自動起動してこなかった場合の対処策について
Published Feb 15 2024 04:25 PM 5,286 Views
Microsoft

こんにちは。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 へ負荷が集中するタイミングを避けて 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 サービスの起動に失敗しない環境では、上記の対処策は不要です。

※ SQL Server 2022 以降は[開始モード] が [自動] と表示されている場合でも、サービスは代わりに [自動 (遅延開始)] モードで開始されます。

SQL Server サービスの開始、停止、一時停止、再開、再起動 - SQL Server | Microsoft Learn

 

※本記事は 2020 年 にMSDN TechNet に公開されたブログ記事を一部修正し、再投稿したものです。

Co-Authors
Version history
Last update:
‎Feb 15 2024 04:25 PM
Updated by: