我有一个数据库,前一段时间从SQL 2000实例恢复到SQL 2005实例。 SQL 2000实例定义了旧的,未使用的全文搜索。
似乎在恢复文件时,全文搜索没有恢复,只是被删除了。
这使数据库处于一个有趣的状态,FTS文件仍然与数据库相关联,但数据库知道的文件列为OFFLINE。事实证明,这使数据库无法完成完整备份。
那么,有没有人知道如何从数据库中删除文件? ALTER DATABASE REMOVE FILE
返回
Msg 5009,Level 16,State 2,Line 1 无法找到或无法初始化语句中列出的一个或多个文件。
实际的备份命令会为每个不存在的文件引发以下错误之一:
Msg 9987,Level 16,State 1,Line 1 不允许备份全文目录'',因为它不在线。检查错误日志文件以查找全文目录脱机并使其联机的原因。或者可以使用FILEGROUP或FILE子句将BACKUP限制为仅包括在线数据。
任何人都知道如何解决这个问题?
答案 0 :(得分:4)
这个难题的答案变得非常简单,至少如果你不关心你的FTS指数,我不会这样做。
EXEC master.dbo.sp_detach_db @dbname = N'dbname', @keepfulltextindexfile=N'false'
这里的关键是第二个标志@keepfulltextindexfile
,默认为true。通过将其设置为false然后重新连接数据库,将删除所有FTS数据,并且备份可以按照应有的方式工作。
答案 1 :(得分:2)
我修改了报告问题如下
答案 2 :(得分:0)
您应该重新填充全文目录。默认情况下,SQL Server 2005不会执行此操作以提升安装过程。