文件状态
在 SQL Server 中,数据库文件的状态独立于数据库的状态。文件始终处于一个特定状态,例如 ONLINE 或 OFFLINE。若要查看文件的当前状态,请使用 sys.master_files 或 sys.database_files 目录视图。如果数据库处于离线状态,则可以从 sys.master_files 目录视图中查看文件的状态。
文件组中的文件的状态确定了整个文件组的可用性。文件组中的所有文件都必须联机,文件组才可用。若要查看文件组的当前状态,请使用 sys.filegroups 目录视图。如果文件组处于离线状态,而您尝试使用 Transact-SQL 语句访问该文件组,则操作将失败并显示一条错误。当查询优化器生成 SELECT 语句的查询计划时,它将避免使用位于离线文件组中的非聚集索引和索引视图,从而使这些语句成功。但是,如果脱机文件组包含目标表的堆或聚集索引,SELECT 语句将失败。此外,如果 INSERT、UPDATE 或 DELETE 语句修改的表的索引包含在脱机文件组中,这些语句将失败。
文件状态定义
下表定义了文件状态。
状态 |
定义 |
---|---|
ONLINE |
文件可用于所有操作。如果数据库本身处于在线状态,则主文件组中的文件始终处于在线状态。如果主文件组中的文件处于离线状态,则数据库将处于离线状态,并且辅助文件的状态未定义。 |
OFFLINE |
文件不可访问,并且可能不显示在磁盘中。文件通过显式用户操作变为离线,并在执行其他用户操作之前保持离线状态。
注意
当文件已损坏时,该文件仅应设置为离线,但可以进行还原。设置为离线的文件只能通过从备份还原才能设置为在线。有关还原单个文件的详细信息,请参阅 RESTORE (Transact-SQL)。
|
RESTORING |
正在还原文件。文件处于还原状态(因为还原命令会影响整个文件,而不仅是页还原),并且在还原完成及文件恢复之前,一直保持此状态。 |
RECOVERY PENDING |
文件恢复被推迟。由于在段落还原过程中未还原和恢复文件,因此文件将自动进入此状态。需要用户执行其他操作来解决该错误,并允许完成恢复过程。有关详细信息,请参阅执行段落还原。 |
SUSPECT |
联机还原过程中,恢复文件失败。如果文件位于主文件组,则数据库还将标记为可疑。否则,仅文件处于可疑状态,而数据库仍处于在线状态。 在通过以下方法之一将文件变为可用之前,该文件将保持可疑状态:
|
DEFUNCT |
当文件不处于在线状态时被删除。删除离线文件组后,文件组中的所有文件都将失效。 |