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