Sql-Server

使用 -T3608 和使用 -f 啟動實例有什麼區別?

  • August 25, 2020

出於學習目的,我在測試環境中模擬了模型數據庫的損壞。在閱讀有關它的其他部落格和文章時,我堅持這個問題,使用未記錄的 -T3608 和 -f 標誌啟動 SQL Server 服務有什麼區別?

當我嘗試使用 -f 啟動服務時,收到錯誤消息並且服務沒有啟動。但是,在-T3608的情況下,它開始順利。對於 -T3608 標誌,我讀到,-T3608 啟動所有數據庫而不執行恢復,而 -f 以最少的配置啟動實例。什麼是最小配置,我找不到有關它的資訊。

假設您分配的東西對於機器中的記憶體來說太大了。以鎖為例。SQL Server 嘗試創建那麼多記憶體,但它不可用,因此 SQL Server 不會啟動。這就是 -f 出現的情況。如今, sp_configure 中內置了一些安全性來避免荒謬的值(例如最大伺服器記憶體太低),因此實際上首先要達到這一點可能並不容易。-f 所做的另一件事是在 master.mdf 所在的位置創建 tempdb,而不是在您所說的應該創建它的位置(想像一個崩潰的 tempdb 磁碟 - 如果沒有 tempdb,SQL Server 就無法生存)。

以上與啟動時不執行數據庫啟動恢復有很大不同,這就是3608的意思。

引用自:https://dba.stackexchange.com/questions/274300