Sql-Server

嘗試移動 tempdb 後無法連接到數據庫引擎

  • January 20, 2022

我剛剛在我的個人 SQL 實例中發出了噓聲。我想將 tempdb 文件分別移動到 C:\tempdb.mdf 和 C:\templog.ldf。alter database …modify file… 命令成功執行。但是,我沒有意識到我不能在 C:\ 中創建文件,只能在那裡創建文件夾。因此,在執行修改文件命令並重新啟動服務後,並沒有創建新文件,即 C:\tempdb.mdf 和 C:\templog.ldf。

當我嘗試獲取 tempdb 數據庫的屬性以查看文件指向的位置時,我發現我無法獲取屬性,也無法再連接到數據庫實例。因此,即使我可以在配置管理器中重新啟動服務,我也無法使用 SSMS 或 SQLCMD 連接到實例。我收到找不到文件的錯誤。

除了重新安裝實例(因為我沒有主數據庫的備份),請問有沒有其他方法可以解決這個問題?

謝謝你。

我相信您應該能夠以最小配置模式啟動 SQL Server 實例,並使用 SQLCMD 通過命令提示符連接到它,如本文所述:如果失去了 TEMPDB 數據文件,如何啟動 SQL Server。請注意,這會將伺服器置於單使用者模式。

連接到它後,您應該能夠執行ALTER DATABASE tempdb MODIFY FILE並將文件位置修改到適當的位置。然後關閉並重新啟動實例。

上述文章中的步驟供參考:

  1. 以 ADMIN 身份打開命令提示符視窗 #1 並轉到安裝 SQL Server 的 BINN 目錄。
  1. 然後執行命令Sqlservr.exe /f /c
  1. 然後再打開一個命令視窗#2,如果這是預設實例,則使用以下命令打開 SQLCMDSQLCMD –S localhost –E
  1. 執行 ALTER DATABASE 命令:USE MASTER GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdb, FILENAME = 'C:\NEWPATH\tempdb.mdf') GO
  1. 現在返回命令視窗#1 並按 CTRL C。它會詢問您是否要停止該實例。是/否。輸入 Y
  1. 現在從配置管理器啟動 SQL Server 實例。您應該會看到已創建新數據文件並且 SQL Server 已啟動。

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