2009-01-20 76 views
2

我有一段時間以前從SQL 2000實例恢復到SQL 2005實例的數據庫。 SQL 2000實例已定義了舊的,未使用的全文搜索。如何從SQL Server 2005數據庫中刪除脫機文件

看起來,當文件恢復時,全文搜索沒有被恢復,而是被刪除。

這使數據庫處於滑稽狀態,FTS文件仍與數據庫相關聯,但數據庫知道的文件列爲OFFLINE。事實證明,這使得數據庫不能完成完整的備份。

那麼,有沒有人知道如何從數據庫中刪除文件? ALTER DATABASE REMOVE FILE回報

消息5009,級別16,狀態2,線在聲明中列出的1個 一個或多個文件無法找到或無法初始化。

實際的備份命令引發以下錯誤的每個文件不存在的一個:

消息9987,級別16,狀態1,行 全文目錄的備份''是不允許的,因爲它不在線。檢查錯誤日誌文件是因爲全文目錄變爲脫機並使其聯機。或者可以使用FILEGROUP或FILE子句來限制選擇,使其只包含在線數據。

任何人都知道如何解決這個問題?

回答

4

這個難題的答案很簡單,至少如果你不關心你的FTS指數,我不這樣做。

EXEC master.dbo.sp_detach_db @dbname = N'dbname', @keepfulltextindexfile=N'false' 

這裏的關鍵是第二個標誌@keepfulltextindexfile,默認爲true。通過將其設置爲false然後重新連接數據庫,所有FTS數據都會被刪除,並且備份可以按照他們應有的方式工作。

0

您應該重新填充全文目錄。默認情況下,SQL Server 2005不會爲安裝過程提供幫助。

+0

應該有一個爭議點。這發生在大約2年前,現在文件已經完全脫機。 SQL Server甚至不知道存在全文目錄,該鏈接似乎已被切斷,但數據庫仍然認爲物理文件應該存在。 – Josef 2009-01-20 19:15:28

2

我固定的報告問題如下

  1. 將數據庫置於單用戶模式。
  2. 分離數據庫。但在單擊確定分離之前,UNCHECK 保留全文目錄。
  3. 重新連接數據庫
相關問題