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

  • Question

  • こんにちは。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 サービスの起動に失敗しない環境では、上記の対処策は不要です。




    Wednesday, September 16, 2020 12:32 AM
    Owner