2009-01-20 134 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. 重新连接数据库
相关问题