文件状态

在 SQL Server 2005 中,数据库文件的状态独立于数据库的状态。文件始终处于一个特定状态,例如 ONLINE 或 OFFLINE。若要查看文件的当前状态,请使用 sys.master_filessys.database_files 目录视图。如果数据库处于离线状态,则可以从 sys.master_files 目录视图中查看文件的状态。

文件组中的文件的状态确定了整个文件组的可用性。文件组中的所有文件都必须联机,文件组才可用。若要查看文件组的当前状态,请使用 sys.filegroups 目录视图。如果文件组处于离线状态,而您尝试使用 Transact-SQL 语句访问该文件组,则操作将失败并显示一条错误。当查询优化器生成 SELECT 语句的查询计划时,它将避免使用位于离线文件组中的非聚集索引和索引视图,从而使这些语句成功。但是,如果脱机文件组包含目标表的堆或聚集索引,SELECT 语句将失败。此外,如果 INSERT、UPDATE 或 DELETE 语句修改的表的索引包含在脱机文件组中,这些语句将失败。

文件状态定义

下表定义了文件状态。

状态

定义

ONLINE

文件可用于所有操作。如果数据库本身处于在线状态,则主文件组中的文件始终处于在线状态。如果主文件组中的文件处于离线状态,则数据库将处于离线状态,并且辅助文件的状态未定义。

OFFLINE

文件不可访问,并且可能不显示在磁盘中。文件通过显式用户操作变为离线,并在执行其他用户操作之前保持离线状态。

ms190241.Caution(zh-cn,SQL.90).gif注意:

当文件已损坏时,该文件仅应设置为离线,但可以进行还原。设置为离线的文件只能通过从备份还原才能设置为在线。有关还原单个文件的详细信息,请参阅 RESTORE (Transact-SQL)

RESTORING

正在还原文件。文件处于还原状态(因为还原命令会影响整个文件,而不仅是页还原),并且在还原完成及文件恢复之前,一直保持此状态。

RECOVERY PENDING

文件恢复被推迟。由于在段落还原过程中未还原和恢复文件,因此文件将自动进入此状态。需要用户执行其他操作来解决该错误,并允许完成恢复过程。有关详细信息,请参阅执行段落还原

SUSPECT

在线还原过程中,恢复文件失败。如果文件位于主文件组,则数据库还将标记为可疑。否则,仅文件处于可疑状态,而数据库仍处于在线状态。

在通过以下方法之一将文件变为可用之前,该文件将保持可疑状态:

  • 还原和恢复
  • 包含 REPAIR_ALLOW_DATA_LOSS 的 BCC CHECKDB

DEFUNCT

当文件不处于在线状态时被删除。删除离线文件组后,文件组中的所有文件都将失效。

请参阅

概念

数据库状态
镜像状态
应对由损坏的备份导致的 SQL Server 还原错误
了解文件和文件组

其他资源

ALTER DATABASE (Transact-SQL)
DBCC CHECKDB (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助