备份和还原全文目录和索引

适用于:SQL Server

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

重要

可以在升级 SQL Server 2005 (9.x) 数据库时导入全文目录。 每个导入的全文目录在其自身的文件组中都是一个数据库文件。 若要备份导入的目录,只需备份其文件组即可。 有关详细信息,请参阅 SQL Server 2005 (9.x) 联机丛书中的备份和还原全文目录

备份全文目录的全文索引

查找全文目录的全文索引

你可以通过使用以下 SELECT 语句检索全文索引的属性,此语句将从 sys.fulltext_indexessys.fulltext_catalogs 目录视图选择一些列。

USE AdventureWorks2022;  
GO  
DECLARE @TableID int;  
SET @TableID = (SELECT OBJECT_ID('AdventureWorks2022.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  

查找包含全文索引的文件组或文件

创建全文索引时,该全文索引将放在以下某个位置:

  • 用户指定的文件组。

  • 与基表或视图相同的文件组(对于未分区表而言)。

  • 主文件组(对于分区表而言)。

注意

有关创建全文索引的详细信息,请参阅创建和管理全文索引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  
  

备份包含全文索引的文件组

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

文件组的首次备份必须是完整文件备份。 在创建文件组的完整文件备份之后,您可以仅备份文件组中的更改,方法是:创建一系列基于完整文件备份的一个或多个差异文件备份。

备份文件和文件组

还原全文索引

还原备份的文件组将还原全文索引文件,以及此文件组中的其他文件。 默认情况下,文件组将还原至该文件组在备份时所在的磁盘位置。

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

还原文件组

另请参阅

管理和监视服务器实例的全文搜索
升级全文搜索