技术开发 频道

SQL Server 2008的全文搜索升级

  备份和导入全文目录 
  对于在升级期间重新生成或重置的全文目录(以及对于新的全文目录),全文目录只是一个逻辑概念,并不驻留在文件组中。因此,若要备份 SQL Server 2008 中的全文目录,必须逐个识别包含目录全文索引的每个文件组并将它们备份。

  对于从 SQL Server 2005 导入的全文目录,该全文目录在其自己的文件组中仍然是数据库文件。在 SQL Server 2008 中除不存在 MSFTESQL 服务以外,全文目录的 SQL Server 2005 备份进程仍然适用。

  将数据库升级到 SQL Server 2008 时迁移全文索引
使用附加、还原或复制数据库向导可以将 SQL Server 早期版本中的数据库文件和全文目录升级到现有 SQL Server 2008 服务器实例。导入、重置或重新生成 SQL Server 2005 全文索引(如果有)。重新生成或重置 SQL Server 2000 全文索引(如果有)。upgrade_option 服务器属性控制在升级这些数据库期间服务器实例使用哪个全文升级选项。

  将所有 SQL Server 2005 或 SQL Server 2000 数据库附加、还原或复制到 SQL Server 2008 后,该数据库将立即变为可用,然后自动进行升级。根据编制索引的数据量,导入可能需要数小时,而重新生成最多可能需要十倍的时间。另请注意,将升级选项设置为“导入”时,如果全文目录不可用,则会重新生成关联的全文索引。

  更改服务器实例的全文升级行为

  Transact-SQL:使用 sp_fulltext_service 的 upgrade_option 操作

  SQL Server Management Studio :使用“服务器属性”对话框的“全文升级选项”。

  有关将 SQL Server 2005 全文目录还原到 SQL Server 2008 的注意事项
将全文数据从 SQL Server 2005 数据库升级到 SQL Server 2008 的其中一种方法是将完整数据库备份还原到 SQL Server 2008。

  导入目录时,您可以备份和还原数据库和目录文件。其行为与 SQL Server 2005 中相同:

  完整数据库备份将包括全文目录。若要引用全文目录,请使用其 SQL Server 2005 文件名,即 sysft_+catalog-name。

  如果全文目录处于脱机状态,备份将失败。

  在 SQL Server 2008 上还原数据库时,将为全文目录创建新的数据库文件。该文件的默认名称是 ftrow_catalog-name.ndf。例如,如果 catalog-name 是 cat1,SQL Server 2008 数据库文件的默认名称则为 ftrow_cat1.ndf。但是,如果目标目录中已使用该默认名称,新数据库文件则命名为 ftrow_catalog-name{GUID}.ndf,其中 GUID 是新文件的全局唯一标识符。

  导入目录后,将更新 sys.database_files 和 sys.master_file 以删除目录项,并将 sys.fulltext_catalogs 中的 path 列设置为 NULL。

  示例
  以下示例在 RESTORE 语句中使用 MOVE 子句,还原名为 ftdb1 的 SQL Server 2005 数据库。SQL Server 2005 数据库、日志和目录文件将被移动到 SQL Server 2008 服务器实例上的新位置,如下所示:

  数据库文件 ftdb1.mdf 移动到 C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL10.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf。

  日志文件 ftdb1_log.ldf 移动到日志磁盘驱动器上的日志目录 log_drive:\log_directory\ftdb1_log.ldf 中。

  与 sysft_cat90 目录对应的目录文件移动到 C:\temp。导入全文索引后,它们将自动放置在数据库文件 C:\ftrow_sysft_cat90.ndf 中,并删除 C:\temp。

RESTORE DATABASE [ftdb1] FROM  DISK = N'C:\temp\ftdb1.bak' WITH  FILE = 1,
MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',
MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',
MOVE N'sysft_cat90' TO N'C:\temp'; 将 SQL Server 2005 数据库附加到 SQL Server 2008

  在 SQL Server 2008 中,全文目录是表示一组全文索引的逻辑概念。全文目录是虚拟对象,并不属于任何文件组。但是,将包含全文目录文件的 SQL Server 2005 数据库附加到 SQL Server 2008 服务器实例时,会将目录文件从其先前位置与其他数据库文件一起附加,这与 SQL Server 2005 中相同。

  SQL Server 2008 中附加的每个全文目录的状态与从 SQL Server 2005 分离数据库时相同。如果分离操作挂起任意全文索引填充,该填充将在 SQL Server 2008 上恢复,全文索引随后即可用于全文搜索。

  如果 SQL Server 2008 找不到全文目录文件,或者在未指定新位置的情况下在附加操作期间移动全文文件,行为则取决于选择的全文升级选项。如果全文升级选项为“导入”或“重新生成”,则重新生成附加的全文目录。如果全文升级选项为“重置”,则重置附加的全文目录。

0
相关文章