<b>重建</b><b>TempDB</b><b>的方法</b>
<b>環境:</b><b></b>
Sqlserver 2008 R2的TempDB檔案被誤删除,導緻Sqlserver服務無法啟動。
<b>分析:</b><b></b>
沒有TempDB資料庫并非無法啟動,隻不過啟動的方式與往常不同,簡單的說,就是希望Sqlserver引擎在啟動的時候不去啟動具體的資料庫,這樣以後就給了DBA足夠的資源來恢複資料庫的運作,具體實作方法如下:
1. 進入cmd,cd切換到sqlserver程式目錄下的bin目錄中 2. 運作sqlserver.exe /f /c /T 3608或者net start "mssqlserver" /f /T 3608 說明:幾個參數的含義 /f:通過最小配置啟動資料庫 /c:sqlserver獨立與window service control manager啟動 /T:用于指定資料庫啟動時的跟蹤标記,通過具體的參數,用于控制sqlserver按照非标準的方式啟動,其中3608表示 資料庫引擎在啟動時隻加載master庫。 3. 檢視下此時引擎中記錄的tempd檔案的位置:
SELECT name, physical_name AS CurrentLocation FROM sys.master_files WHERE database_id = DB_ID(N'tempdb'); GO
4. 請執行如下語句重建tempdb資料庫: USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf'); MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf'); 5. 在windows服務中重新開機資料庫服務
參考文檔: http://msdn.microsoft.com/en-us/library/ms162819.aspx http://msdn.microsoft.com/en-us/library/ms188396.aspx