备份和还原 SQL Server 2008 全文目录

本主题说明如何备份和还原在 SQL Server 2008 中创建的全文索引。在 SQL Server 2008 中,全文目录是一个逻辑概念,并不驻留在文件组中。因此,若要备份 SQL Server 2008 中的全文目录,必须逐个识别包含目录全文索引的每个文件组并将它们备份。

重要说明重要提示

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

备份和还原 SQL Server 2008 全文目录的索引需要执行以下步骤:

  1. 查找全文目录的全文索引

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

  3. 备份全文目录的全文索引

  4. 还原全文索引

查找全文目录的全文索引

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

USE AdventureWorks2008R2;
GO
DECLARE @TableID int;
SET @TableID = (SELECT OBJECT_ID('AdventureWorks2008R2.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)如何创建全文索引 (Visual Database Tools)

若要查找表或视图的全文索引所属的文件组,请使用以下查询,其中 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

备份全文目录的全文索引

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

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

备份文件和文件组

还原全文索引

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

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

还原文件组