2016-06-01 41 views
0

請幫忙!遇到意外的文件ID。預計文件ID爲15,但是從「...」讀取了14個文件

我今天早上重新啓動了SQL SERVER 2012的服務器。服務器恢復後,我發現MS SQL Server Management Studio中有一個用戶數據庫處於「恢復掛起」狀態。

在SQL日誌,我發現了錯誤信息:

錯誤:5161,嚴重性:16,狀態:遇到1.

意外的文件ID。預期文件ID爲15,但從「\ SQL-Server \ DATA \ 15 Thumbdrive \ DB \ 0014_TSf.ndf」中讀取了14。驗證文件是否在sys.master_files中正確映射。 ALTER DATABASE可用於更正映射。

錯誤:5105,嚴重性:16,狀態:1

出現文件激活錯誤。物理文件名'\ SQL-Server \ DATA \ 15 Thumbdrive \ DB \ 0014_TSf.ndf'可能不正確。診斷並更正其他錯誤,然後重試該操作。

我在檢查sys.master_files中,並得到結果如下:

database_id file_id name  physical_name 
5   14  0013_TSf \\SQL-Server\DATA\Test_\DB\0013_TSf.ndf 
5   15  0014_TSf \\SQL-Server\DATA\15 Thumbdrive\DB\0014_TSf.ndf 

從結果文件 '\ SQL-服務器\ DATA \ 15隨身碟\ DB \ 0014_TSf.ndf' 確實有一個如錯誤消息中所述,編號爲15,而不是14。

我試圖從用戶數據庫中刪除此文件,但不能,因爲它在「恢復掛起」,這意味着數據庫根本不在線。

我也嘗試更新sys.master_files或sys.sysbrickfile,但它沒有工作,或者給出了一個錯誤,如「不允許系統目錄的臨時更新」。

任何想法將不勝感激!

回答

0

恢復掛起意味着由於某些原因,SQL無法在數據庫上運行重新啓動恢復。通常這是因爲日誌丟失或損壞。

如果文件存在並且在線驅動,則嘗試停止並重新啓動SQL服務,因爲它可能是在驅動器可用之前SQL出現的。那會導致這個錯誤。

+0

謝謝您的回覆,並且我確實停止並重新啓動了多次服務,但仍然無法正常工作。還有其他想法嗎?非常感謝。 – bfaoei

+0

赤冷杉MDF和LDF是存在或不.. 如果存在於主DB運行下面coommand ALTER DATABASE ONLINE SET WITH IMMEDIATE ROLLBACK WITH IMMEDIATE ROLLBACK ALTER DATABASE 'DATBASE NAME' 'DATBASE NAME' SET OFFLINE –

+0

由於一個許多。我做了你的建議,但仍然無效。我終於放棄了修復數據庫並使用2個月前的備份恢復它(備份計劃在數據文件出錯後2個月前停止工作)。再次感謝你。 – bfaoei