以單一使用者模式啟動 SQL Server
在某些情況下,您可能必須使用啟動選項 -m,在單一使用者模式中啟動 SQL Server 的實例。例如,您可能想要變更伺服器組態選項,或復原損毀的 master 資料庫或其他系統資料庫。 這兩個動作都需要在單一使用者模式下啟動 SQL Server 的執行個體。
在單一使用者模式中啟動 SQL Server,可讓電腦本機系統管理員群組的任何成員以 sysadmin 固定伺服器角色的成員身分連線至 SQL Server 的執行個體。 如需詳細資訊,請參閱 當系統管理員遭到鎖定時連接到 SQL Server。
以單一使用者模式啟動 SQL Server 執行個體時,請注意下列事項:
只有一個使用者可以連接到伺服器。
不會執行 CHECKPOINT 處理。 依預設,在啟動時會自動執行。
注意
以單一使用者模式連線到至 SQL Server 執行個體之前,必須先停止 SQL Server Agent 服務;否則 SQL Server Agent 服務會使用該連線,從而將其封鎖。
當您以單一使用者模式啟動 SQL Server 執行個體時,SQL Server Management Studio 可以連線到 SQL Server。 Management Studio 中的物件總管可能會失敗,因為其需要一個以上的連接才能進行某些作業。 若要以單一使用者模式管理SQL Server,請只透過 Management Studio 中的 查詢編輯器 連線,或使用sqlcmd 公用程式來執行 Transact-SQL 語句。
當您搭配sqlcmd或 Management Studio 使用-m選項時,可以限制連線到指定的用戶端應用程式。 例如, -m「sqlcmd」 會將連線限制為單一連線,且該連線必須將其識別為 sqlcmd 用戶端程式。 在單一使用者模式中啟動 SQL Server 且有未知的用戶端應用程式佔用唯一可用的連線時,請使用此選項。 若要透過 Management Studio 中的查詢編輯器進行連線,請使用-m「Microsoft SQL Server Management Studio - Query」。
重要
請勿將這個選項當做安全性功能使用。 用戶端應用程式會提供用戶端應用程式名稱,而且可能會在連接字串中提供假的名稱。
叢集安裝注意事項
若為叢集環境中的 SQL Server 安裝,當 SQL Server 以單一使用者模式啟動時,叢集資源 dll 會用完可用的連線,藉此封鎖與伺服器的任何其他連線。 當 SQL Server 處於此狀態時,如果您嘗試將 SQL Server Agent 資源帶到線上,則在 SQL 資源設定為可影響群組時,其可能會將此資源容錯移轉到另一個節點。
若要避開此問題,請使用下列程序:
從SQL Server進階屬性中移除 -m 啟動參數。
使 SQL Server 資源離線。
從這個群組的目前擁有者節點,從命令提示字元發出下列命令:
net start MSSQLSERVER /m從叢集管理員或是容錯移轉叢集管理主控台驗證 SQL Server 資源是否仍為離線狀態。
現在使用下列命令連線到 SQL Server,並執行必要作業:SQLCMD -E -S<servername>。
當此操作完成之後,關閉命令提示字元,並透過叢集管理員將 SQL 和其他資源帶回線上。
另請參閱
啟動、停止或暫停 SQL Server Agent 服務
資料庫管理員的診斷連接
sqlcmd 公用程式
CHECKPOINT (Transact-SQL)
sp_configure (Transact-SQL)
Database Engine 服務啟動選項