备份和还原全文目录和索引
适用范围:SQL Server
本主题说明如何备份和还原在 SQL Server 中创建的全文索引。 在 SQL Server 中,全文目录是一个逻辑概念,并不驻留在文件组中。 因此,要备份 SQL Server 中的全文目录,必须识别包含属于该目录的全文索引的每个文件组。 然后您必须逐个备份这些文件组。
重要
可以在升级 SQL Server 2005 (9.x) 数据库时导入全文目录。 每个导入的全文目录在其自身的文件组中都是一个数据库文件。 若要备份导入的目录,只需备份其文件组即可。 有关详细信息,请参阅 SQL Server 2005 (9.x) 联机丛书中的备份和还原全文目录。
备份全文目录的全文索引
查找全文目录的全文索引
你可以通过使用以下 SELECT 语句检索全文索引的属性,此语句将从 sys.fulltext_indexes 和 sys.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
备份包含全文索引的文件组
在找到包含全文目录索引的文件组后,您需要备份找到的每个文件组。 在备份过程中,不会删除或添加全文目录。
文件组的首次备份必须是完整文件备份。 在创建文件组的完整文件备份之后,您可以仅备份文件组中的更改,方法是:创建一系列基于完整文件备份的一个或多个差异文件备份。
备份文件和文件组
还原全文索引
还原备份的文件组将还原全文索引文件,以及此文件组中的其他文件。 默认情况下,文件组将还原至该文件组在备份时所在的磁盘位置。
如果在创建备份时全文索引表处于联机状态并且正在运行填充,则在还原之后将继续填充。
还原文件组