数据库始终处于一个特定状态。 例如,这些状态包括在线、离线或可疑。 若要验证数据库的当前状态,请选择 sys.databases 目录视图中的 state_desc 列或 DATABASEPROPERTYEX 函数中的 Status 属性。
数据库状态定义
下表定义了数据库的状态。
国家 | 定义 |
---|---|
在线 | 可以对数据库进行访问。 主文件组是在线的,尽管恢复的撤消阶段可能尚未完成。 |
离线 | 数据库无法使用。 数据库由于显式的用户操作而处于离线状态,并保持离线状态直至执行了其他的用户操作。 例如,可能会让数据库离线以便将文件移至新的磁盘。 然后,在完成移动操作后,使数据库恢复到在线状态。 |
恢复 | 正在还原主文件组的一个或多个文件,或正在脱机还原一个或多个辅助文件。 数据库不可用。 |
恢复中 | 正在恢复数据库。 恢复进程是一个暂时性状态,恢复成功后数据库将自动处于在线状态。 如果恢复失败,数据库将处于可疑状态。 数据库不可用。 |
恢复待定 | SQL Server 在恢复过程中遇到了与资源相关的错误。 数据库未损坏,但文件可能缺失,或者系统资源限制可能会阻止其启动。 数据库不可用。 需要用户另外执行操作来解决问题,并让恢复进程完成。 |
嫌疑人 | 至少主文件组可疑或可能已损坏。 在启动 SQL Server 期间无法恢复数据库。 数据库不可用。 需要用户另外执行操作来解决问题。 |
紧急情况 | 用户更改了数据库,并将其状态设置为 EMERGENCY。 数据库处于单用户模式,可以修复或还原。 数据库标记为 READ_ONLY,禁用日志记录,并仅限 sysadmin 固定服务器角色的成员访问。 EMERGENCY 主要用于故障排除。 例如,可以将标记为“可疑”的数据库设置为 EMERGENCY 状态。 这样可以允许系统管理员对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。 |