我有一个数据库,前段时间从 SQL 2000 实例恢复到 SQL 2005 实例。 SQL 2000 实例定义了旧的、未使用的全文搜索。
看来,当文件恢复时,全文搜索并没有恢复,只是被删除了。
这使数据库处于一种有趣的状态,FTS 文件仍然与数据库关联,但数据库知道的文件列为离线。事实证明,这使得数据库无法完成完整备份。
那么,有人知道如何从数据库中删除文件吗?ALTER DATABASE REMOVE FILE
returns
消息 5009,16 级,状态 2,第 1 行
无法找到或无法初始化该语句中列出的一个或多个文件。
对于每个不存在的文件,实际的备份命令会引发以下错误之一:
消息 9987,16 级,状态 1,第 1 行
不允许备份全文目录“”,因为它不在线。检查错误日志文件以了解全文目录脱机的原因并将其联机。或者可以通过使用 FILEGROUP 或 FILE 子句来限制选择仅包括在线数据来执行 BACKUP。
有人知道如何解决这个问题吗?
这个难题的答案其实非常简单,至少如果你不关心你的 FTS 指数的话,而我并不关心。
EXEC master.dbo.sp_detach_db @dbname = N'dbname', @keepfulltextindexfile=N'false'
这里的关键是第二个标志,@keepfulltextindexfile
,默认为 true。通过将其设置为 false,然后重新连接数据库,所有 FTS 数据都会被删除,并且备份可以正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)