啟動、停止、暫停、繼續和重新啟動 SQL Server 服務

適用於:SQL Server - 僅限 Windows

本文描述如何使用 SQL Server 組態管理員、SQL Server Management Studio (SSMS)、命令提示字元的 net 命令、Transact-SQL 或 PowerShell 啟動、停止、暫停、繼續或重新啟動 SQL Server 資料庫引擎、SQL Server Agent,或 Windows 上的 SQL Server Browser 服務。

如需 Linux 上的 SQL Server,請參閱在 Linux 上啟動、停止和重新啟動 SQL Server 服務

識別服務

SQL Server 元件是當作 Windows 服務執行的可執行程式。 Windows 服務可以在不顯示電腦畫面上任何活動的情況下執行,而不需要在命令列上與使用者互動。

Database Engine 服務

資料庫引擎服務可以是預設執行個體 (每部電腦只限一個執行個體),或可以是電腦上許多具名執行個體的其中一個。 使用 SQL Server 組態管理員來了解哪些資料庫引擎執行個體會安裝在電腦上。 預設執行個體 (如果安裝的話) 會列為 SQL Server (MSSQLSERVER) 。 具名執行個體 (如果安裝的話) 會列為 SQL Server (<instance_name>)。 根據預設,SQL Server Express 會安裝為 SQL Server (SQLEXPRESS)

SQL Server Agent 服務

SQL Server Agent 服務,會執行排程的管理工作 (稱為作業和警示)。 如需詳細資訊,請參閱 SQL Server Agent。 並非所有 SQL Server 版本都可使用 SQL Server Agent。 如需 SQL Server 版本支援的功能清單,請參閱 SQL Server 2022 的版本和支援功能

SQL Server Browser 服務

SQL Server Browser 服務會接聽傳入要求以找出 SQL Server 資源,並提供電腦上所安裝 SQL Server 執行個體的用戶端資訊。 單一 SQL Server Browser 服務執行個體會用於電腦上所安裝的所有 SQL Server 執行個體。

其他資訊

  • 若您暫停資料庫引擎服務,則已連線的使用者可以繼續工作,直到連線中斷為止,但新的使用者無法連線至資料庫引擎。 當您想要等待使用者在停止服務之前完成其工作時,請使用 [暫停],這可讓他們完成進行中的交易。 「繼續」可讓資料庫引擎再次接受新的連線。 SQL Server Agent 服務無法暫停或繼續。

  • SQL Server 組態管理員和 SSMS 會使用下列圖示來顯示目前的服務狀態。

SQL Server 組態管理員 SQL Server Management Studio (SSMS)
Started 服務名稱旁邊圖示上的綠色箭頭 服務名稱旁邊綠色圓形圖示上的白色箭頭
已停止 服務名稱旁邊圖示上的紅色方塊 服務名稱旁邊紅色圓形圖示上的白色方塊
已暫停 服務名稱旁邊圖示上的藍色雙垂直線 服務名稱旁邊藍色圓形圖示上的白色雙垂直線
重新啟動 紅色方塊表示服務已停止,綠色箭頭則表示服務已順利啟動
  • 視服務的狀態而定,使用 SQL Server 組態管理員或 SSMS 時,您將無法存取所有可能的選項。 例如,如果此服務已啟動,則無法使用 [啟動]。

  • 在叢集上執行時,使用叢集管理員來管理 SQL Server 資料庫引擎服務的效果最佳。

權限

根據預設,只有本機系統管理員群組的成員能夠啟動、停止、暫停、繼續或重新啟動服務。 若要將管理服務的能力授與非系統管理員,請參閱 How to grant users rights to manage services in Windows Server 2003(如何在 Windows Server 2003 中,將管理服務的權限授與使用者)。 (其他 Windows Server 版本的流程都很相似。)

使用 Transact-SQL SHUTDOWN 命令停止資料庫引擎,需要sysadminserveradmin 固定伺服器角色的成員資格,且無法移轉。

SQL Server 組態管理員

啟動 SQL Server 組態管理員

[開始] 功能表上,依序選取 [所有程式] > [Microsoft SQL Server] > [組態工具] > [SQL Server 組態管理員]。

SQL Server 組態管理員是 Microsoft 管理主控台程式的嵌入式管理單元,且在某些版本的 Windows 中可能不會作為應用程式出現。 如需詳細資訊,請參閱 SQL Server 組態管理員

啟動、停止、暫停、繼續或重新啟動 SQL Server 資料庫引擎的執行個體

  1. 使用上一節中的指示啟動 SQL Server 組態管理員。

  2. 如果出現 [使用者帳戶控制] 對話方塊,請選取 [是]。

  3. 在 SQL Server 組態管理員中,選取位於左側窗格中的 [SQL Server 服務]。

  4. 在結果窗格中,以滑鼠右鍵按一下 [SQL Server (MSSQLServer)] 或具名執行個體,然後選取 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。

  5. 選取 [確定] 以關閉 SQL Server 組態管理員。

注意

若要使用啟動選項啟動資料庫引擎的執行個體,請參閱設定伺服器啟動選項 (SQL Server 組態管理員)

重要

從 SQL Server 2022 (16.x) 開始,當您在組態管理員中將 [啟動模式] 設定為 [自動] 時,服務會改以 [自動 (延遲啟動)] 模式啟動,即使 [啟動模式] 顯示為 [自動] 也一樣。

啟動、停止、暫停、繼續或重新啟動 SQL Server Browser 或 SQL Server Agent 的執行個體

  1. 使用上一節中的指示啟動 SQL Server 組態管理員。

  2. 如果出現 [使用者帳戶控制] 對話方塊,請選取 [是]。

  3. 在 SQL Server 組態管理員中,選取位於左側窗格中的 [SQL Server 服務]。

  4. 在結果窗格中,以滑鼠右鍵按一下 [SQL Server Browser] 或具名執行個體的 [SQL Server Agent (MSSQLServer)] 或 [SQL Server Agent (<instance_name>)],然後選取 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。

  5. 選取 [確定] 以關閉 SQL Server 組態管理員。

注意

SQL Server Agent 無法暫停。

SQL Server Management Studio

啟動、停止、暫停、繼續或重新啟動資料庫引擎的執行個體

  1. 在 [物件總管] 中,連線至資料庫引擎的執行個體,並以滑鼠右鍵按一下所要啟動的資料庫引擎執行個體,然後選取 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。

    或者,在 [已註冊的伺服器] 中,以滑鼠右鍵按一下所要啟動的資料庫引擎執行個體、並指向 [服務控制],然後選取 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。

  2. 如果出現 [使用者帳戶控制] 對話方塊,請選取 [是]。

  3. 當系統提示是否要採取行動時,請選取 [是]。

啟動、停止或重新啟動 SQL Server Agent 的執行個體

  1. 在 [物件總管] 中,連線到資料庫引擎的執行個體,並以滑鼠右鍵按一下 [SQL Server Agent],然後選取 [啟動]、[停止] 或 [重新啟動]。

  2. 如果出現 [使用者帳戶控制] 對話方塊,請選取 [是]。

  3. 當系統提示是否要採取行動時,請選取 [是]。

從命令提示字元視窗使用 net 命令

可以使用 Windows net 命令來啟動、停止或暫停 SQL Server 服務。

啟動資料庫引擎的預設執行個體

  • 從命令提示字元,輸入下列其中一個命令:

    net start "SQL Server (MSSQLSERVER)"
    

    -或-

    net start MSSQLSERVER
    

啟動資料庫引擎的具名執行個體

  • 從命令提示字元,輸入下列其中一個命令。 以您要管理之執行個體的名稱取代 <執行個體名稱>

    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
    

    注意

    如需啟動選項的詳細資訊,請參閱 Database Engine 服務啟動選項

在 SQL Server 預設執行個體上啟動 SQL Server Agent

  • 從命令提示字元,輸入下列其中一個命令:

    net start "SQL Server Agent (MSSQLSERVER)"
    

    -或-

    net start SQLSERVERAGENT
    

在 SQL Server 具名執行個體上啟動 SQL Server Agent

  • 從命令提示字元,輸入下列其中一個命令。 以您要管理之執行個體的名稱取代 執行個體名稱

    net start "SQL Server Agent (instancename)"
    

    -或-

    net start SQLAgent$instancename
    

如需如何以詳細資訊模式執行 SQL Server Agent 來進行疑難排解的資訊,請參閱 sqlagent90 應用程式

啟動 SQL Server Browser

  • 從命令提示字元,輸入下列其中一個命令:

    net start "SQL Server Browser"
    

    -或-

    net start SQLBrowser
    

若要從命令提示字元視窗暫停或停止服務

若要暫停或停止服務,請使用下列方式來修改命令。

  • 若要暫停服務,請將 net start 取代為 net pause

  • 若要停止服務,請將 net start 取代為 net 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 Agent 服務的參考。

      $DfltInstance = $Wmi.Services['SQLSERVERAGENT']
      
    • 取得資料庫引擎具名執行個體上 SQL Server Agent 服務的參考。

      $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 服務時,如果發生組態問題,則這些服務可能不會啟動。 您可以檢閱服務特定的記錄,以找出問題並加以解決。 下列文章提供特定問題的詳細疑難排解步驟和解決方式:

下一步