备份和还原 Full-Text 目录和索引

本主题介绍如何备份和还原在 SQL Server 中创建的全文索引。 在 SQL Server 中,全文目录是一个逻辑概念,不驻留在文件组中。 因此,若要在 SQL Server 中备份全文目录,必须标识包含属于目录的全文索引的每个文件组。 然后,必须逐个备份这些文件组。

重要

升级 SQL Server 2005 数据库时,可以导入全文目录。 每个导入的全文目录都是其自己的文件组中的数据库文件。 若要备份导入的目录,只需备份其文件组。 有关详细信息,请参阅 SQL Server 2005 在线文档中的备份和恢复 Full-Text 目录

备份 Full-Text 目录的 Full-Text 索引

查找 Full-Text 索引在 Full-Text 目录中

可以使用以下 SELECT 语句检索全文索引的属性,该语句从 sys.fulltext_indexessys.fulltext_catalogs 目录视图中选择列。

USE AdventureWorks2012;  
GO  
DECLARE @TableID int;  
SET @TableID = (SELECT OBJECT_ID('AdventureWorks2012.Production.Product'));  
SELECT object_name(@TableID), i.is_enabled, i.change_tracking_state,   
   i.has_crawl_completed, i.crawl_type, c.name as fulltext_catalog_name   
   FROM sys.fulltext_indexes i, sys.fulltext_catalogs c   
   WHERE i.fulltext_catalog_id = c.fulltext_catalog_id;  
GO  

查找包含 Full-Text 索引的文件组或文件

创建全文索引时,它将放置在以下位置之一:

  • 用户指定的文件组。

  • 对于非分区表,文件组与基表或视图相同。

  • 分区表的主文件组。

注释

有关创建全文索引的信息,请参阅 创建和管理 Full-Text 索引CREATE FULLTEXT INDEX (Transact-SQL)

若要查找表或视图上全文索引的文件组,请使用以下查询,其中 object_name 是表或视图的名称:

SELECT name FROM sys.filegroups f, sys.fulltext_indexes i   
   WHERE f.data_space_id = i.data_space_id   
      and i.object_id = object_id('object_name');  
GO  
  

备份包含 Full-Text 索引的文件组

找到包含全文目录索引的文件组后,需要备份每个文件组。 在备份过程中,可能不会删除或添加全文目录。

文件组的第一个备份必须是完整文件备份。 为文件组创建完整文件备份后,可以通过创建基于完整文件备份的一个或多个差异文件备份来仅备份文件组中的更改。

备份文件和文件组

还原 Full-Text 索引

还原备份的文件组可还原全文索引文件,以及文件组中的其他文件。 默认情况下,文件组将还原到备份文件组的磁盘位置。

如果一个全文索引表处于联机状态,并且在创建备份时索引填充正在进行,那么在还原后,索引填充将继续进行。

还原文件组

另请参阅

管理和监视 Full-Text 搜索服务器实例
升级 Full-Text 搜索