Sql-Server

如何恢復 SQL Server 模型數據庫?

  • December 11, 2009

從幾天前開始,當我嘗試啟動 SQL Server 服務時,它失敗了,並在 NT 應用程序日誌中記錄了以下錯誤:

恢復期間發生錯誤,導致數據庫“模型”(數據庫 ID 3)無法重新啟動。診斷恢復錯誤並修復它們,或從已知良好的備份中恢復。如果錯誤未得到糾正或未預料到,請聯繫技術支持。

當主數據庫正常但我無法對數據庫執行 sql 命令(或從管理工作室連接到它)時,如何恢復(或重建)模型數據庫,因為在這種情況下 SQL Server 甚至沒有啟動?

我確實在備份容器/卷中有備份(所有備份都在第二個 HD 上的單個文件中)。我相信模型數據庫的恢復模型是SIMPLE

我並沒有在文件或網際網路上找到太多資訊(像這樣),因為在大多數文章中,要麼服務實際執行,因此您可以針對它執行命令,要麼主數據庫也已損壞。

錯誤日誌的一些選定條目:

  • 嘗試恢復涉及 Microsoft 分佈式事務協調器 (MS DTC) 的不確定分佈式事務$$ .. $$
  • 數據庫 ‘master’ 的 CHECKDB 已完成且沒有錯誤$$ .. $$
  • 啟動數據庫“模型”。
  • 警告:沒有看到LOP_CKPT_END
  • 錯誤:3414,嚴重性:21,狀態:2。
  • 恢復期間發生錯誤,導致數據庫“模型”(數據庫 ID 3)無法重新啟動。診斷恢復錯誤並修復它們,或從已知良好的備份中恢復。如果錯誤未得到糾正或未預料到,請聯繫技術支持。
  • 由於伺服器關閉,SQL 跟踪已停止。跟踪 ID = ‘1’。$$ .. $$

Microsoft SQL Server 2005 - 9.00.4053.00,在 Windows NT 5.2 上(內部版本 3790:Service Pack 2)

有任何想法嗎?非常感謝!

由於它是“僅”模型數據庫,我建議僅從工作實例中複製模型數據庫。在這種情況下,不需要重建所有系統數據庫。

啟動時需要模型來創建 tempdb。沒有 tempdb,引擎將無法啟動。您可以從位於同一版本 9.00.4053 的另一個實例中複製模型。如果您修改了模型以及保留這些修改的內容,您可以嘗試將 mdf/ldf 複製到另一台伺服器並將其附加為普通使用者、數據庫以嘗試修復它,然後將其複制回來。

引用自:https://serverfault.com/questions/93346