使用 SQL Server 服務啟動選項

安裝 SQL Server 時,安裝程式會在 Microsoft Windows 登錄中寫入一組預設啟動選項。您可使用這些啟動選項來指定替代 master 資料庫檔案、master 資料庫記錄檔或錯誤記錄檔。

您可以使用 SQL Server 組態管理員來設定啟動選項。如需相關資訊,請參閱<如何:設定伺服器啟動選項 (SQL Server 組態管理員)>。

預設啟動選項

描述

-dmaster_file_path

master 資料庫檔案的完整路徑 (通常是 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\master.mdf)。如果不提供這個選項,會使用現有的登錄參數。

-eerror_log_path

錯誤記錄檔的完整路徑 (通常是 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG)。如果不提供這個選項,會使用現有的登錄參數。

-lmaster_log_path

master 資料庫記錄檔的完整路徑 (通常是 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\mastlog.ldf)。如果不指定這個選項,就會使用現有的登錄參數。

您可以暫時覆寫預設啟動選項,並使用下列其他啟動選項來啟動 SQL Server 的執行個體。

其他啟動選項

描述

-c

縮短從命令提示字元啟動 SQL Server 的啟動時間。一般而言,SQL Server Database Engine 會呼叫「服務控制管理員」,以服務方式啟動。因為從命令提示字元啟動時,SQL Server Database Engine 不會以服務方式啟動,所以請使用 -c 略過這個步驟。

-f

啟動只含最小組態的 SQL Server 執行個體。如果組態值設定 (如過度調配記憶體) 造成伺服器無法啟動,這就很有用。以最低組態模式啟動 SQL Server 會將 SQL Server 放在單一使用者模式下。如需詳細資訊,請參閱隨後的 -m 描述。

-gmemory_to_reserve

指定 SQL Server 保留在 SQL Server 處理序內但在 SQL Server 記憶體集區外進行記憶體配置的記憶體 (整數 MB)。記憶體集區外的記憶體是 SQL Server 用來載入項目的區域,例如擴充程序 .dll 檔、分散式查詢參考的 OLE DB 提供者,以及 Transact-SQL 陳述式中參考的自動化物件。預設值是 256 MB。

使用此選項可幫助微調記憶體配置,但僅適用於當實體記憶體超出作業系統為應用程式所設定的可用虛擬記憶體限制時。在 SQL Server 的記憶體使用需求不合規則且 SQL Server 處理序的虛擬位址空間全部都在使用的大型記憶體組態中,可能適合使用這個選項。當不正確地使用這個選項時,可能會造成無法啟動 SQL Server 執行個體的狀況,也可能會發生執行階段錯誤。

除非您在 SQL Server 錯誤記錄中見到下列任何警告,否則,請使用 -g 參數的預設值:

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE <size>"

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT <size>"

這些訊息可能表示 SQL Server 正在嘗試釋出 SQL Server 記憶體集區的可用部分,以便找出擴充預存程序 .dll 檔或 Automation 物件等項目的空間。在這種情況下,可考慮增加 -g 參數保留的記憶體數量。

使用的值若小於預設值,會增加緩衝集區與執行緒堆疊可用的記憶體大小,使得系統中不使用許多擴充預存程序、分散式查詢或 Automation 物件的記憶體密集工作負載可以因此而改善一些效能。

-h

以 32 位元 SQL Server 啟用 AWE 時,保留 Hot Add Memory 中繼資料的虛擬位址空間。32 位元 AWE 的熱新增記憶體有這項需要,不過,這會取用大約 500 GB 的虛擬位址空間,並且使記憶體的微調更加困難。64 位元的 SQL Server 沒有這項需要。熱新增記憶體僅適用於 Windows Server 2003 Enterprise 和 Datacenter Edition。它還需要硬體供應商的特殊硬體支援。

-m

當您以單一使用者模式啟動 SQL Server 執行個體。以單一使用者模式啟動 SQL Server 執行個體時,只有單一使用者可以進行連接,且不會啟動 CHECKPOINT 處理序。CHECKPOINT 會保證將交易規律地從磁碟快取區寫到資料庫裝置。(一般而言,如果遇到一些應該修復系統資料庫的問題時,就會使用這個選項)。啟用 sp_configure allow updates 選項。根據預設,allow updates 是停用的。在單一使用者模式下啟動 SQL Server 可讓電腦本機管理員群組的任何成員以 sysadmin 固定伺服器角色的成員身分,連接到 SQL Server 的執行個體。如需詳細資訊,請參閱<疑難排解:當系統管理員遭到鎖定時連接到 SQL Server>。如需有關單一使用者模式的詳細資訊,請參閱<以單一使用者模式啟動 SQL Server>。

-m"Client Application Name"

當您搭配 sqlcmd 或 SQL Server Management Studio 使用 -m 選項時,您可以限制與指定之用戶端應用程式之間的連接。例如,-m"sqlcmd" 會將連接限制為單一連接,而且該連接必須將自己識別為 sqlcmd 用戶端程式。當您在單一使用者模式下啟動 SQL Server 而且有未知的用戶端應用程式佔用唯一可用的連接時,請使用這個選項。若要透過 Management Studio 中的查詢編輯器進行連接,請使用 -m"Microsoft SQL Server Management Studio - Query"

重要注意事項重要事項
請勿將這個選項當做安全性功能使用。用戶端應用程式會提供用戶端應用程式名稱,而且可以在連接字串中提供假的名稱。

-n

請不要使用 Windows 應用程式記錄檔來記錄 SQL Server 事件。如果您使用 -n 來啟動 SQL Server 的執行個體,我們建議您同時使用 -e 啟動選項。否則,系統不會記錄 SQL Server 事件。

-s

可讓您啟動 SQL Server 的具名執行個體。若未設定 -s 參數,預設執行個體將嘗試啟動。您必須先在命令提示字元之下,切換到執行個體的適當 BINN 目錄,才能啟動 sqlservr.exe。例如,如果 Instance1 的二進位編碼檔案使用 \mssql$Instance1,使用者就必須位於 \mssql$Instance1\binn 目錄中,才能啟動 sqlservr.exe -s instance1

-Ttrace#

指出啟動 SQL Server 執行個體時,應該已啟用指定的追蹤旗標 (trace#)。追蹤旗標用來啟動具有非標準行為的伺服器。如需詳細資訊,請參閱<追蹤旗標 (Transact-SQL)>。

-x

停用下列監視功能:

  • SQL Server 效能監視器計數器

  • 保留 CPU 時間和快取叫用比率統計資料

  • 收集 DBCC SQLPERF 命令的資訊

  • 收集某些動態管理檢視的資訊

  • 許多擴充的事件事件點

警告注意事項警告
當您使用 –x 啟動選項時,就會大幅減少可讓您用來診斷 SQL Server 之效能與運作問題的資訊。

-E

增加針對檔案群組內每一個檔案所配置的範圍數。這個選項對於有限制執行索引或資料掃描之使用者數目的資料倉儲應用程式可能會很有幫助。其他應用程式內不應該使用這個選項,因為它對於效能可能有負面影響。32 位元的 SQL Server 版本中不支援這個選項。

[!附註]

指定具有 -T 選項的追蹤旗標時,請使用大寫 "T" 來傳送追蹤旗標號碼。SQL Server 會接受小寫 "t",但這會設定 SQL Server 支援工程師才需要的其他內部追蹤旗標(不會讀取控制台啟動視窗中所指定的參數)。

使用啟動選項進行疑難排解

有些啟動選項 (例如單一使用者模式和最低組態模式) 主要是在疑難排解期間使用。手動啟動 sqlservr.exe 時,使用 –m–f 選項來啟動伺服器進行疑難排解是在命令列中最容易完成的作業。

[!附註]

使用 net start 啟動 SQL Server 時,啟動選項會使用斜線 (/) 來取代連字號 (-)。

在正常作業期間使用啟動選項

在您每次啟動 SQL Server 時,可能都會想要使用一些啟動選項。只要使用 SQL Server Management Studio 或 SQL Server 組態管理員來設定啟動參數,很容易就可以完成這些選項 (例如 –g 或以追蹤旗標啟動)。這些工具會將啟動選項儲存成登錄機碼,這樣 SQL Server 就一定會使用這些啟動選項來啟動。

變更記錄

更新的內容

已新增 -m"Client Application Name" 啟動選項及描述。