PRB: 'Temp_db' 的裝置造成啟動 SQL Server 的問題

文章翻譯 文章翻譯
文章編號: 158586 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

徵狀

如果 SQL Server 啟動時,讓 tempdb 會放置在 RAM (無論是使用明確設定 'tempdb 中 RAM' 選項,或是啟動最小設定模式,在命令列使用-f 參數),SQL Server 就無法正常啟動,如果裝置以 'temp_db' 的裝置名稱已經存在。

發生的原因

tempdb 放在 RAM 中時, SQL Server 首先會嘗試建立邏輯名稱為 'temp_db' RAM 裝置,然後在此裝置上建立 tempdb 資料庫。如果裝置已經存在具有名稱 'temp_db',嘗試插入到 sysdevices 資料表項目將會失敗 ; 因此無法建立 tempdb。

SQL Server 錯誤記錄檔會包含以下的錯誤訊息的順序:
嘗試插入在物件 'sysdevices' 具有唯一索引 'sysdevices' (訊息 2601) 中的重複索引鍵資料列

crdb_tempdb: 無法進入 RAM 移動 tempdb ; RAM 裝置不存在、 無法建立或沒有足夠的空間,讓 tempdb。

伺服器會繼續執行啟動處理程序,並將可能會報告其他錯誤訊息。



如果您嘗試使用 tempdb (比方說在啟動預存程序) 啟動時,可能會報告下列錯誤訊息,伺服器將無法啟動:
msg 906: 找不到資料列在系統資料庫目錄 'sysobjects' 資料庫 'tempdb' 中的 sysobjects 中....

訊息 615: 無法找出資料庫資料表識別碼 = 2,名稱 = 'tempdb'....

如果您嘗試啟動伺服器後,存取 tempdb,上述的郵件將會記錄,但不是會停止伺服器。

其他可行方案

來啟動伺服器,前往 [命令提示字元,並巡覽至 SQL Server 已安裝 (例如,SQL60\BINN SQL Server 6.0 或 SQL Server 6.5 的 MSSQL\BINN) 的位置的 BINN 目錄。然後使用下列的命令列,也就是區分大小寫,啟動 SQL Server:
sqlservr-c-m-T3609-T4022



請注意-m 使用單一使用者模式啟動 SQL Server。 之後第一個成功登入任何後續的要求會出現登入失敗 」 的訊息,直到第一個連線已登出。 請確定您停止任何可能正在嘗試登入 SQL Server (例如,SQL 高階主管、 效能監視器等) 的自動化程序。

一旦啟動 SQL Server 使用 ISQL/W 連線至 SQL Server。請注意您將無法使用 [SQL 企業管理員,它不適用於這些啟動參數 (因為它使用 tempdb)。 一旦連線,請使用下列命令來卸除現有的裝置,讓 SQL Server 可以建立該裝置在啟動後的,名為 'temp_db'。
sp_dropdevice 'temp_db'

如果除了 tempdb 之外的任何其他資料庫已被展開到裝置,命令將會報告這些資料庫的名稱。這些資料庫會需要被卸除使用 DROP 資料庫] 指令,以便 temp_db 裝置可以被刪除。



如果 SQL Server 還是無法順利啟動之後遵循上述步驟,而 tempdb 必須被明確地放在詳細 RAM 使用下列命令試著將 tempdb 放回磁碟上。
sp_configure 'tempdb 中 RAM' 0
重新設定與覆寫

這應該將 tempdb 放回在預設的裝置具有預設資料庫大小 (通常在母片上 2 MB)。 停止並重新啟動 SQL Server。 這個時候您會希望卸除具有名稱 temp_db 裝置和建立裝置以不同的名稱,然後再展開 tempdb 到這個新的裝置上。

屬性

文章編號: 158586 - 上次校閱: 2013年10月4日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt KB158586 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:158586
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com