备份和还原:互操作性和共存 (SQL Server)

适用范围:SQL Server

本主题描述 SQL Server 中若干功能的备份和还原注意事项。 这些功能包括:文件还原和数据库启动、联机还原和禁用的索引、数据库镜像以及段落还原和全文索引。

本主题内容:

文件还原和数据库启动

本节仅与包含多个文件组的 SQL Server 数据库相关。

注意

数据库启动时,只有其文件在数据库关闭时处于联机状态的文件组能够恢复并处于联机状态。

如果数据库启动过程中出现问题,恢复将失败且数据库被标记为 SUSPECT。 如果可以将问题隔离到单个文件或多个文件,则数据库管理员可以使文件脱机并尝试重新启动数据库。 若要使文件脱机,可以使用以下 ALTER DATABASE 语句:

ALTER DATABASE database_name MODIFY FILE (NAME ='filename', OFFLINE)

如果数据库成功启动,则任何包含脱机文件的文件组将保持脱机状态。

联机还原和禁用的索引

本节仅适用于包含多个文件组的数据库;在简单恢复模式下,适用于至少包含一个只读文件组的数据库。

在此类情况下,当数据库处于联机状态时,仅当包含索引任意部分的所有文件组均联机时,才能创建、删除、启用或禁用索引。

有关还原离线文件组的信息,请参阅联机还原 (SQL Server)

数据库镜像以及备份和还原

本节仅与包含多个文件组的完整模式数据库有关。

注意

后续版本的 Microsoft SQL Server 将删除数据库镜像功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 Always On 可用性组。

“数据库镜像”是一种提高数据库可用性的解决方案。 镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库。 有关详细信息,请参阅数据库镜像 (SQL Server)

注意

若要分发数据库中部分文件组的副本,请使用复制:仅复制文件组中您要复制到其他服务器的那些对象。 有关复制的详细信息,请参阅 SQL Server 复制

创建镜像数据库

镜像数据库是通过在镜像服务器上使用 WITH NORECOVERY 还原主体数据库的备份来创建的。 还原后的数据库必须保持相同的数据库名称。 有关详细信息,请参阅为镜像准备镜像数据库 (SQL Server)

在支持的情况下,您可以使用分段还原序列来创建镜像数据库。 但是,在还原所有文件组之前,您不能启动镜像;而且通常还必须还原日志备份,以使镜像数据库在时间上与主体数据库足够接近。 有关详细信息,请参阅分段还原 (SQL Server)

镜像期间备份与恢复的限制

当数据库镜像会话处于活动状态时,将受到以下限制:

  • 不允许备份和还原镜像数据库。

  • 允许备份主数据库,但不允许使用 BACKUP LOG WITH NORECOVERY。

  • 不允许还原主体数据库。

分段还原和全文索引

本节仅与包含多个文件组的数据库有关;对于简单模式数据库,仅与只读文件组有关。

全文索引存储在数据库文件组中,并且可能会受到部分还原的影响。 如果全文索引与任何关联的表数据位于同一文件组中,则段落还原将按预期的方式工作。

注意

若要查看包含全文索引的文件组的文件组 ID,请选择 sys.fulltext_indexes的 data_space_id 列。

全文索引和表位于不同的文件组中

如果全文索引驻留在一个与所有相关表数据分开的文件组中,则分段还原的行为取决于先还原并联机的是哪个文件组:

  • 如果包含全文索引的文件组先于包含关联表数据的文件组还原并变为联机,则在全文索引联机后,全文搜索将按预期的方式工作。

  • 如果包含表数据的文件组先于包含全文索引的文件组还原并变为联机,则全文行为可能会受到影响。 这是因为,触发填充操作、重新生成目录或重新组织目录的 Transact-SQL 语句在索引联机之前都会失败。 这些语句包括CREATE FULLTEXT INDEX、ALTER FULLTEXT INDEX和DROP FULLTEXT INDEXALTER FULLTEXT CATALOG。

    在这种情况下,下列因素就至关重要:

    • 如果全文索引具有更改跟踪,则在索引文件组联机之前,用户 DML 会失败。 在索引文件组联机之前,删除操作也会失败。

    • 不管是否有跟踪更改,由于索引不可用,全文查询都会失败。 如果在包含全文索引的文件组脱机时尝试全文查询,则会返回错误。

    • 状态函数(如 FULLTEXTCATALOGPROPERTY)只有在不必访问全文索引时才会成功。 例如,对任何在线全文元数据的访问都会成功,但 uniquekeycount, itemcount 会失败。

    在全文索引文件组还原并变为联机之后,目录数据和表数据将一致。

在基表文件组和全文索引文件组均联机后,将立即恢复所有暂停的全文填充。

文件备份、还原和压缩

SQL Server 支持对只读文件组和只读数据库进行 Windows NT 文件系统数据压缩。

压缩的 NTFS 文件支持还原只读文件组中的文件。 这些文件组的备份和还原实质上与任何只读文件组相同,但下列情况除外:

  • 将读写文件(包括读写数据库的主文件或日志文件)还原为压缩卷会失败并显示错误。

  • 但是,将只读数据库还原为压缩卷是允许的。

注意

读/写数据库的日志文件决不要放在压缩文件系统中。

相关任务

另请参阅

SQL Server 数据库的备份和还原
备份和还原复制的数据库
活动次要副本:次要副本备份(Always On 可用性组)