啟動、停止、暫停、繼續、重新啟動 Database Engine、SQL Server Agent 或 SQL Server Browser 服務
本主題描述如何啟動、停止、暫停、繼續或重新啟動 SQL Server Database Engine、SQL Server Agent 或 SQL Server Browser 服務,方法是使用 SQL Server 組態管理員、SQL Server Management Studio、命令提示字元中的 net 命令、Transact-SQL 或 PowerShell。
開始之前:
這些是什麼服務?
其他資訊
安全性
使用指示:
SQL Server 組態管理員
SQL Server Management Studio
命令提示字元視窗中的 net 命令
Transact-SQL
PowerShell
開始之前
什麼是 SQL Server Database Engine 服務、SQL Server Agent 服務和 SQL Server Browser 服務?
SQL Server 元件是當做 Windows 服務執行的可執行程式。 當做 Windows 服務執行的程式可以繼續操作,而不會在電腦螢幕上顯示任何活動。
Database Engine 服務
當做 SQL Server Database Engine 的可執行處理序。 Database Engine 可以是預設執行個體 (每部電腦只限一個執行個體),或者可以是許多具名 Database Engine 執行個體的其中一個。 使用 SQL Server 組態管理員來判斷哪些 Database Engine 執行個體會安裝在電腦上。 預設執行個體 (如果安裝的話) 會列為 SQL Server (MSSQLSERVER)。 具名執行個體 (如果安裝的話) 會列為 SQL Server (<instance_name>)。 根據預設,SQL Server Express 會安裝為 SQL Server (SQLEXPRESS)。SQL Server Agent 服務
一種 Windows 服務,它會執行排程的管理工作 (稱為作業和警示)。 如需詳細資訊,請參閱<SQL Server Agent>。 並非每個 SQL Server 版本都可使用 SQL Server Agent。 如需 SQL Server 版本支援的功能清單,請參閱 SQL Server 2012 版本支援的功能 (https://go.microsoft.com/fwlink/?linkid=232473)。SQL Server Browser 服務
一種 Windows 服務,它會接聽 SQL Server 資源的內送要求,並為用戶端提供有關電腦上所安裝之 SQL Server 執行個體的資訊。 單一 SQL Server Browser 服務執行個體會用於電腦上所安裝的所有 SQL Server 執行個體。
其他資訊
暫停 Database Engine 服務會阻止新的使用者連接到 Database Engine,但是已連接的使用者可以繼續工作,直到連接中斷為止。 當您希望在停止服務之前等待使用者完成工作時,請使用暫停。 這樣可讓他們完成正在進行的交易。 「繼續」可讓 Database Engine 再次接受新的連接。 SQL Server Agent 服務無法暫停或繼續。
SQL Server 組態管理員和 SQL Server Management Studio 會使用以下圖示來顯示目前的服務狀態。
SQL Server 組態管理員
服務名稱旁圖示上的綠色箭頭,表示服務已啟動。
服務名稱旁圖示上的紅色方塊,表示服務已停止。
服務名稱旁圖示上的兩條垂直藍線,表示服務已暫停。
重新啟動 Database Engine 時,紅色方塊表示服務已停止,綠色箭頭則表示服務已順利啟動。
SQL Server Management Studio
服務名稱旁綠色圓形圖示上的白色箭頭,表示服務已啟動。
服務名稱旁紅色圓形圖示上的白色方塊,表示服務已停止。
服務名稱旁藍色圓形圖示上的兩條垂直白線,表示服務已暫停。
當使用 SQL Server 組態管理員或 SQL Server Management Studio 時,只能使用可能的選項。 例如,如果此服務已啟動,則無法使用 [啟動]。
在叢集上執行時,使用叢集管理員來管理 SQL Server Database Engine 服務的效果最佳。
安全性
權限
根據預設,只有本機 Administrators 群組的成員能夠啟動、停止、暫停、繼續或重新啟動服務。 若要將管理服務的能力授與非系統管理員,請參閱如何在 Windows Server 2003 中,將管理服務的權限授與使用者 (機器翻譯)。 (其他 Windows 版本的程序都很相似)。
使用 Transact-SQL SHUTDOWN 命令停止 Database Engine 需要 sysadmin 或 serveradmin 固定伺服器角色的成員資格,而且無法移轉。
[Top]
使用 SQL Server 組態管理員
若要啟動、停止、暫停、繼續或重新啟動 SQL Server Database Engine 的執行個體
指向 [開始] 功能表上的 [所有程式],然後依序指向 [ Microsoft SQL Server 2012 ] 和 [組態工具],再按一下 [SQL Server 組態管理員]。
如果出現 [使用者帳戶控制] 對話方塊,請按一下 [是]。
在 [SQL Server 組態管理員] 中,按一下左窗格中的 [SQL Server 服務]。
在結果窗格中,以滑鼠右鍵按一下 [SQL Server (MSSQLServer)] 或具名執行個體,然後按一下 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。
按一下 [確定],即可關閉 SQL Server 組態管理員。
[!附註]
若要使用啟動選項來啟動 SQL Server Database Engine 的執行個體,請參閱<設定伺服器啟動選項 (SQL Server 組態管理員)>。
若要啟動、停止、暫停、繼續或重新啟動 SQL Server Browser 或是 SQL Server Agent 的執行個體
指向 [開始] 功能表上的 [所有程式],然後依序指向 [ Microsoft SQL Server 2012 ] 和 [組態工具],再按一下 [SQL Server 組態管理員]。
如果出現 [使用者帳戶控制] 對話方塊,請按一下 [是]。
在 [SQL Server 組態管理員] 中,按一下左窗格中的 [SQL Server 服務]。
在結果窗格中,以滑鼠右鍵按一下 [SQL Server Browser] 或 [SQL Server Agent (MSSQLServer)] 或是具名執行個體的 [SQL Server Agent (<instance_name>)],然後按一下 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。
按一下 [確定],即可關閉 SQL Server 組態管理員。
[!附註]
SQL Server Agent 無法暫停。
[Top]
使用 SQL Server Management Studio
若要啟動、停止、暫停、繼續或重新啟動 SQL Server Database Engine 的執行個體
在物件總管中,連接至 Database Engine 的執行個體,並以滑鼠右鍵按一下您要啟動的 Database Engine 執行個體,然後按一下 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。
或者在 [已註冊的伺服器] 中,以滑鼠右鍵按一下您要啟動的 Database Engine 執行個體、並指向 [服務控制],然後按一下 [啟動]、[停止]、[暫停]、[繼續] 或 [重新啟動]。
如果出現 [使用者帳戶控制] 對話方塊,請按一下 [是]。
當系統提示您是否要執行動作時,請按一下 [是]。
若要啟動、停止或重新啟動 SQL Server Agent 的執行個體
在物件總管中,連接到 Database Engine 的執行個體,並以滑鼠右鍵按一下 [SQL Server Agent],然後按一下 [啟動]、[停止] 或 [重新啟動]。
如果出現 [使用者帳戶控制] 對話方塊,請按一下 [是]。
當系統提示您是否要執行動作時,請按一下 [是]。
[Top]
從命令提示字元視窗使用 net 命令
可以使用 Microsoft Windows net 命令來啟動、停止或暫停 Microsoft SQL Server 服務。
若要啟動 Database Engine 的預設執行個體
從命令提示字元,輸入下列其中一個命令:
net start "SQL Server (MSSQLSERVER)"
-或-
net start MSSQLSERVER
若要啟動 Database Engine 的具名執行個體
從命令提示字元,輸入下列其中一個命令。 以您要管理之執行個體的名稱取代 <instancename>。
net start "SQL Server (執行個體名稱)"
-或-
net start MSSQL$執行個體名稱
若要使用啟動選項來啟動 Database Engine
將啟動選項加入到 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
從命令提示字元,輸入下列其中一個命令。 以您要管理之執行個體的名稱取代 instancename。
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 pause 取代 net start。
若要停止服務,請以 net stop 取代 net start。
[Top]
使用 Transact-SQL
可以使用 SHUTDOWN 陳述式來停止 Database Engine。
若要使用 Transact-SQL 停止 Database Engine
若要等待目前執行的 Transact-SQL 陳述式和預存程序完成,然後停止 Database Engine,請執行下列陳述式。
SHUTDOWN;
若要立即停止 Database Engine,請執行下列陳述式。
SHUTDOWN WITH NOWAIT;
如需有關 SHUTDOWN 陳述式的詳細資訊,請參閱<SHUTDOWN (Transact-SQL)>。
[Top]
使用 PowerShell
若要啟動及停止 Database Engine 服務
在 [命令提示字元] 視窗中,執行下列命令來啟動 SQL Server PowerShell。
sqlps
在 SQL Server PowerShell 命令提示字元中,執行下列命令。 以電腦的名稱取代 computername。
# Get a reference to the ManagedComputer class. CD SQLSERVER:\SQL\computername $Wmi = (get-item .).ManagedComputer
識別您想要停止或啟動的服務。 挑選下列其中一行。 使用具名執行個體的名稱取代 instancename。
取得 Database Engine 預設執行個體的參考。
$DfltInstance = $Wmi.Services['MSSQLSERVER']
取得 Database Engine 具名執行個體的參考。
$DfltInstance = $Wmi.Services['MSSQL$instancename']
取得 Database Engine 預設執行個體上 SQL Server Agent 服務的參考。
$DfltInstance = $Wmi.Services['SQLSERVERAGENT']
取得 Database Engine 具名執行個體上 SQL Server Agent 服務的參考。
$DfltInstance = $Wmi.Services['SQLAGENT$instancename']
取得 SQL Server Browser 服務的參考。
$DfltInstance = $Wmi.Services['SQLBROWSER']
完成範例,以啟動然後停止選取的服務。
# 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
[Top]