MSSQL2005:还原数据库而不还原全文目录

时间:2009-02-11 10:00:41

标签: sql-server sql-server-2005 tsql

恢复数据库时,我对正在使用的全文目录的物理文件有疑问。

The file 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\MyCatalog' cannot be overwritten.  It is being used by database 'demo2'.

我使用此恢复声明

 RESTORE database demo from disk = N'c:\temp\demo.bak' WITH REPLACE 
,MOVE 'demo_Data' TO 'd:\Program Files\Microsoft SQL Server 2005\MSSQL\Data\demo.MDF'     
,MOVE 'demo_Log' TO 'd:\Program Files\Microsoft SQL Server 2005\MSSQL\Data\demo.LDF';

解决方案是在没有全文目录的情况下恢复,但我可以弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

我不确定如何在没有全文文件的情况下进行恢复,但您始终可以使用move进行恢复。您已经为数据库和日志文件执行此操作,只需使用以下命令完成您的语句:

,MOVE 'sysft_demo_ft' TO 'd:\NewLocationForFullTextFile.ft'

您可以使用以下命令获取文件的确切名称:

RESTORE FILELISTONLY
FROM DISK='C:\yourbackupfile.bak'

答案 1 :(得分:0)

我还必须使用全文恢复数据库(实际上,修复了我的自动恢复脚本以自动恢复全文索引)

我不知道有什么方法可以不恢复它们(如果没有为全文索引指定RESTORE WITH MOVE,SQL还原会给你一个错误,除非有一条路径与原始路径匹配.bak文件)

我建议

  1. 恢复整个数据库,包括全文索引
  2. 删除数据库中的所有全文索引    枚举所有全文目录      SELECT name FROM DB.sys.fulltext_catalogs(SQL2005 / 2008)  然后生成drop命令(您可能必须在删除目录之前删除表上的索引)      DROP FULLTEXT CATALOG [名称]