在某些情況下,您可能必須使用 啟動選項 -m ,以單一使用者模式啟動 SQL Server 實例。例如,您可能想要變更伺服器組態選項,或復原損毀的主資料庫或其他系統資料庫。 這兩個動作都需要在單一使用者模式下啟動 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 公用程式
檢查點 (Transact-SQL)
sp_configure (Transact-SQL)
Database Engine 服務啟動選項