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

適用対象:SQL Server - Windows のみ

この記事では、SQL Server 構成マネージャー、SQL Server Management Studio (SSMS)、コマンド プロンプトからの net コマンド、Transact-SQL、または PowerShell を使用して、Windows で SQL Server データベース エンジン、SQL Server エージェント、または SQL Server Browser サービスを開始、停止、一時停止、再開、または再起動する方法について説明します。

SQL Server on Linux の場合は、「Linux で SQL Server サービスを開始、停止、再起動する」を参照してください。

サービスを識別する

SQL Server コンポーネントは、Windows サービスとして実行される実行可能プログラムです。 Windows サービスを実行するために、コンピューター画面にアクティビティを表示する必要はなく、コマンド ラインでのユーザー操作も必要ありません。

データベース エンジン サービス

データベース エンジン サービスは、既定のインスタンス (1 台のコンピューターにつき 1 つのみ) とすることも、コンピューター上のさまざまな名前付きインスタンスの中の 1 つとすることもできます。 コンピューターにインストールされているデータベース エンジンのインスタンスを見つけるには、SQL Server 構成マネージャーを使用します。 既定のインスタンス (インストールした場合) は、SQL Server (MSSQLSERVER) として表示されます。 名前付きインスタンス (インストールした場合) は、SQL Server (<instance_name>) として表示されます。 既定では、SQL Server Express は SQL Server (SQLEXPRESS) としてインストールされます。

SQL Server エージェント サービス

SQL Server エージェント サービスは、ジョブとアラートと呼ばれるスケジュールされた管理タスクを実行します。 詳しくは、「 SQL Server Agent」をご覧ください。 SQL Server エージェントは、SQL Server のすべてのエディションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2022 の各エディションとサポートされている機能」を参照してください。

SQL Server Browser サービス

SQL Server Browser サービスは、SQL Server の各種リソースに関する着信要求を受信し、コンピューターにインストールされている SQL Server インスタンスに関するクライアント情報を提供します。 SQL Server Browser サービスの単一のインスタンスが、コンピューターにインストールされている SQL Server のすべてのインスタンスで使用されます。

追加情報

  • データベース エンジン サービスを一時停止すると、既に接続しているユーザーは接続が切断されるまで作業を続行できますが、新しいユーザーはデータベース エンジンに接続することができなくなります。 一時停止は、ユーザーの作業完了を待ってサービスを停止させる場合に使います。これにより、実行中のトランザクションを完了させることができます。 "再開" すると、データベース エンジンが再び新しい接続を受け入れられるようになります。 SQL Server エージェント サービスを一時停止および再開することはできません。

  • SQL Server 構成マネージャーおよび SSMS では、次のアイコンを使用してサービスの現在の状態が表示されます。

SQL Server 構成マネージャー SQL Server Management Studio (SSMS)
Started サービス名の隣にあるアイコン上の緑色の矢印 サービス名の隣にある緑色の円形のアイコン上の白い矢印
停止 サービス名の隣にあるアイコン上の赤い四角 サービス名の隣にある赤い円形のアイコン上の白い四角形
一時停止 サービス名の隣にあるアイコン上の 2 本の青い縦線 サービス名の隣にある青い円形のアイコン上の 2 本の白い縦線
再起動 サービスが停止したことが赤い四角形によって示された後、サービスが正常に開始されたことが緑色の矢印によって示されます なし
  • SQL Server 構成マネージャーや SSMS を使う場合、サービスの状態によっては、可能なすべてのオプションにアクセスできないことがあります。 たとえば、サービスが既に開始されている場合、 [開始] は利用できません。

  • クラスターで実行中の SQL Server データベース エンジン サービスを管理するには、クラスター アドミニストレーターを使用するのが最適です。

アクセス許可

サービスを開始、停止、一時停止、再開、または再起動できるのは、既定ではローカル管理者グループのメンバーだけです。 管理者以外のユーザーがサービスを管理できるようにする方法については、「 [HOWTO] Windows Server 2003 でサービスを管理する権利をユーザーに付与する」をご覧ください (Windows Server の他のバージョンでも処理は同じです)。

Transact-SQL の SHUTDOWN コマンドを使用してデータベース エンジンを停止するには、sysadmin または serveradmin の固定サーバー ロールのメンバーシップが必要です。この権限を譲渡することはできません。

SQL Server 構成マネージャー

SQL Server 構成マネージャーを開始する

[スタート] メニューから、[すべてのプログラム] > [Microsoft SQL Server] > [構成ツール] > [SQL Server 構成マネージャー] を選びます。

SQL Server 構成マネージャーは Microsoft 管理コンソール プログラムのスナップインであり、Windows のバージョンによっては、アプリケーションとして表示されません。 詳細については、「 SQL Server Configuration Manager」を参照してください。

SQL Server データベース エンジンのインスタンスを開始、停止、一時停止、再開、または再起動する

  1. 前のセクションの手順を使用して、SQL Server 構成マネージャーを開始します。

  2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、 [はい] を選びます。

  3. SQL Server 構成マネージャーの左側のペインで、 [SQL Server のサービス] を選びます。

  4. 結果ペインで [SQL Server (MSSQLServer)] または名前付きインスタンスを右クリックし、 [開始][停止][一時停止][再開] 、または [再起動] を選びます。

  5. [OK] を選んで、SQL Server 構成マネージャーを閉じます。

注意

スタートアップ オプションを指定してデータベース エンジンのインスタンスを開始する方法については、「サーバーのスタートアップ オプションの構成 (SQL Server 構成マネージャー)」をご覧ください。

重要

SQL Server 2022 (16.x) 以降では、SQL Server サービスの [開始モード] を構成マネージャーで [自動] に設定すると、[開始モード][自動] と表示されている場合でも、サービスは代わりに [自動 (遅延開始)] モードで開始されます。

SQL Server Browser または SQL Server エージェントのインスタンスを開始、停止、一時停止、再開、または再起動する

  1. 前のセクションの手順を使用して、SQL Server 構成マネージャーを開始します。

  2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、 [はい] を選びます。

  3. SQL Server 構成マネージャーの左側のペインで、 [SQL Server のサービス] を選びます。

  4. 結果ウィンドウで [SQL Server Browser] または [SQL Server エージェント (MSSQLServer)] を右クリックするか、名前付きインスタンスの場合には [SQL Server エージェント (<instance_name>)] を右クリックし、[開始][停止][一時停止][再開]、または [再起動] を選びます。

  5. [OK] を選んで、SQL Server 構成マネージャーを閉じます。

注意

SQL Server エージェントを一時停止することはできません。

SQL Server Management Studio

データベース エンジンのインスタンスを開始、停止、一時停止、再開、または再起動する

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、開始するデータベース エンジンのインスタンスを右クリックして、[開始][停止][一時停止][再開]、または [再起動] を選択します。

    または、[登録済みサーバー] で、開始するデータベース エンジンのインスタンスを右クリックし、[サービス コントロール] をポイントし、[開始][停止][一時停止][再開]、または [再起動] を選択します。

  2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、 [はい] を選びます。

  3. 操作するかどうかを確認するメッセージが表示されたら、 [はい] を選びます。

SQL Server エージェントのインスタンスを開始、停止、または再起動する

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、[SQL Server エージェント] を右クリックして、[開始][停止]、または [再起動] を選択します。

  2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、 [はい] を選びます。

  3. 操作するかどうかを確認するメッセージが表示されたら、 [はい] を選びます。

コマンド プロンプト ウィンドウでの net コマンドの使用

Windows の net コマンドを使用して、SQL Server サービスを開始、停止、または一時停止できます。

データベース エンジンの既定のインスタンスを開始する

  • コマンド プロンプトで、次のいずれかのコマンドを入力します。

    net start "SQL Server (MSSQLSERVER)"
    

    または

    net start MSSQLSERVER
    

データベース エンジンの名前付きインスタンスを開始する

  • コマンド プロンプトで、次のいずれかのコマンドを入力します。 <instancename> は、管理するインスタンスの名前に置き換えます。

    net start "SQL Server (instancename)"
    

    または

    net start MSSQL$instancename
    

スタートアップ オプションを使用してデータベース エンジンを開始する

  • net start "SQL Server (MSSQLSERVER)" ステートメントの末尾に、スタートアップ オプションをスペースで区切って追加します。 net start を使用して起動するときは、スタートアップ オプションでハイフン (-) の代わりにスラッシュ (/) を使用します。

    net start "SQL Server (MSSQLSERVER)" /f /m
    

    または

    net start MSSQLSERVER /f /m
    

    注意

    スタートアップ オプションの詳細については、「 データベース エンジン サービスのスタートアップ オプション」をご覧ください。

SQL Server の既定のインスタンスで SQL Server エージェントを開始する

  • コマンド プロンプトで、次のいずれかのコマンドを入力します。

    net start "SQL Server Agent (MSSQLSERVER)"
    

    または

    net start SQLSERVERAGENT
    

SQL Server の名前付きインスタンスで SQL Server エージェントを開始する

  • コマンド プロンプトで、次のいずれかのコマンドを入力します。 instancename は、管理するインスタンスの名前に置き換えます。

    net start "SQL Server Agent (instancename)"
    

    または

    net start SQLAgent$instancename
    

トラブルシューティングのために SQL Server エージェントを詳細モードで実行する方法については、「sqlagent90 アプリケーション」をご覧ください。

SQL Server Browser を開始する

  • コマンド プロンプトで、次のいずれかのコマンドを入力します。

    net start "SQL Server Browser"
    

    または

    net start SQLBrowser
    

コマンド プロンプト ウィンドウからサービスを一時停止または停止する

サービスを一時停止または停止するには、次のようにコマンドを変更します。

  • サービスを一時停止するには、net startnet pause に置き換えます。

  • サービスを停止するには、net startnet stop に置き換えます。

Transact-SQL

SHUTDOWN ステートメントを使用して、データベース エンジンを停止できます。

Transact-SQL を使用してデータベース エンジンを停止する

  • 現在実行中の Transact-SQL ステートメントおよびストアド プロシージャが終了するまで待機してからデータベース エンジンを停止するには、次のステートメントを実行します。

    SHUTDOWN;
    
  • データベース エンジンを直ちに停止するには、次のステートメントを実行します。

    SHUTDOWN WITH NOWAIT;
    

SHUTDOWN ステートメントについて詳しくは、「SHUTDOWN (Transact-SQL)」をご覧ください。

PowerShell

データベース エンジン サービスを開始および停止する

  1. SQL Server PowerShell コマンド プロンプトで、次のコマンドを実行します。 computername は自分のコンピューター名に置き換えます。

    # Get a reference to the ManagedComputer class.
    CD SQLSERVER:\SQL\computername
    $Wmi = (get-item .).ManagedComputer
    
  2. 停止または開始するサービスを指定します。 以下のいずれかの行を選択してください。 instancename は名前付きインスタンスの名前に置き換えます。

    • データベース エンジンの既定のインスタンスへの参照を取得する場合

      $DfltInstance = $Wmi.Services['MSSQLSERVER']
      
    • データベース エンジンの名前付きインスタンスへの参照を取得する場合

      $DfltInstance = $Wmi.Services['MSSQL$instancename']
      
    • データベース エンジンの既定のインスタンスの SQL Server エージェント サービスへの参照を取得する場合

      $DfltInstance = $Wmi.Services['SQLSERVERAGENT']
      
    • データベース エンジンの名前付きインスタンスの SQL Server エージェント サービスへの参照を取得する場合

      $DfltInstance = $Wmi.Services['SQLAGENT$instancename']
      
    • SQL Server Browser サービスへの参照を取得する場合

      $DfltInstance = $Wmi.Services['SQLBROWSER']
      
  3. 例を実行して、選択したサービスを開始し、停止します。

    # Display the state of the service.
    $DfltInstance
    # Start the service.
    $DfltInstance.Start();
    # Wait until the service has time to start.
    # Refresh the cache.
    $DfltInstance.Refresh();
    # Display the state of the service.
    $DfltInstance
    # Stop the service.
    $DfltInstance.Stop();
    # Wait until the service has time to stop.
    # Refresh the cache.
    $DfltInstance.Refresh();
    # Display the state of the service.
    $DfltInstance
    

無効になっているインスタンスを確認して有効にする

SQL Server サービス インスタンスが無効になっているかどうかを確認するには、次の手順に従います。

  1. [サービスの識別] セクションの情報を使用して、確認するサービスを特定します。

  2. [SQL Server 構成マネージャー] で、[SQL Server サービス] を選択し、目的のサービスを見つけます。

  3. [開始モード] 列の値が [その他 (ブート、システム、無効、不明)] に設定されている場合、通常、対応するサービスが無効になっていることを意味します。 サービスを有効にするには、次の手順に従います。

    1. [名前] 列で、対応するサービスを右クリックし、[<"サービス名"> プロパティ] ウィンドウの[サービス] タブに切り替えます。

    2. [開始モード] 列の値を調べて、[無効] に設定されていることを確認します。

    3. 要件に従って、その値を [手動] または [自動] のいずれかに変更します。 詳細については、「サーバー起動オプションを構成する (SQL Server 構成マネージャー)」を参照してください。

ServiceController クラスを使う

ServiceController クラスを使うと、SQL Server サービスや他の Windows サービスをプログラムから制御することができます。 C# の使用例については、「ServiceController クラス」を参照してください。

サービスの起動に関する問題のトラブルシューティング

SQL Server サービスを開始しようとしたときに、構成に問題がある場合、サービスが起動しない可能性があります。 サービス固有のログを確認して、問題を特定して解決できます。 特定の問題の詳細なトラブルシューティング手順と解決策については、次の記事を参照してください。

次のステップ