数据库状态 (database states)

查询数据库的当前状态 :

1、查询所有数据库的状态 ,通过sys.databases目录视图的state_desc列

user master
go
select state_desc ,[name] from sys.databases
go

2、查询指定数据库的状态,通过DATABASEPROPERTYEX函数的Status属性

select DATABASEPROPERTYEX('demoData','status')
go

 状态:

ONLINE:可以对数据库进行访问。 即使可能尚未完成恢复的撤消阶段,主文件组仍处于在线状态。

OFFLINE:数据库无法使用。 数据库由于显式的用户操作而处于离线状态,并保持离线状态直至执行了其他的用户操作。 例如,可能会让数据库离线以便将文件移至新的磁盘。 然后,在完成移动操作后,使数据库恢复到在线状态。

RESTORING:正在还原主文件组的一个或多个文件,或正在脱机还原一个或多个辅助文件。 数据库不可用。

RECOVERING:正在恢复数据库。 恢复进程是一个暂时性状态,恢复成功后数据库将自动处于在线状态。 如果恢复失败,数据库将处于可疑状态。 数据库不可用。

RECOVERY PENDING:SQL Server 在恢复期间遇到了与资源相关的错误。 数据库未损坏,但是可能缺少文件,或系统资源限制可能导致无法启动数据库。 数据库不可用。 需要用户另外执行操作来解决问题,并让恢复进程完成。

SUSPECT(质疑):至少主文件组可疑或可能已损坏。 在 SQL Server启动过程中无法恢复数据库。 数据库不可用。需要用户另外执行操作来解决问题。

EMERGENCY(紧急):用户更改了数据库,并将其状态设置为 EMERGENCY。 数据库处于单用户模式,可以修复或还原。 数据库标记为 READ_ONLY,禁用日志记录,并仅限 sysadmin 固定服务器角色的成员访问。 EMERGENCY 主要用于故障排除。 例如,可以将标记为“可疑”的数据库设置为 EMERGENCY 状态。 这样可以允许系统管理员对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。

文件状态 (database states)

在 SQL Server中,数据库文件的状态独立于数据库的状态。 文件始终处于一个特定状态,例如 ONLINE 或 OFFLINE

查询文件状态:

--若要查看文件的当前状态
select state_desc,[name] from sys.master_files
select state_desc,[name] from sys.database_files --如果数据库处于离线状态
select state_desc,[name] from sys.master_files

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

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

    ** 警告 *\* 当文件已损坏时,该文件仅应设置为离线,但可以进行还原。 设置为离线的文件只能通过从备份还原才能设置为在线。

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

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

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

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

      还原和恢复

      包含 REPAIR_ALLOW_DATA_LOSS 的 BCC CHECKDB

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

SQL Server数据库状态和文件状态的更多相关文章

  1. SQL SERVER数据库删除LOG文件和清空日志的方案

    原文:SQL SERVER数据库删除LOG文件和清空日志的方案 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文 ...

  2. [转]SQL SERVER数据库删除LOG文件和清空日志的方案

    本文转自:https://www.cnblogs.com/ShaYeBlog/archive/2012/09/04/2670505.html 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下 ...

  3. sql server 数据库 只有mdf文件,如何附加

    直接附加就可以,SQL 会提示LOG文件找不到,可删除提示的错误行,只附加MDF文件,附加成功后,SQL会自动创建LOG文件.

  4. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  5. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  6. 关于SQL Server中分区表的文件与文件组的删除(转)

    在SQL Server中对表进行分区管理时,必定涉及到文件与文件组,关于文件与文件组如何创建在网上资料很多,我博客里也有两篇相关转载文件,可以看看,我这就不再细述,这里主要讲几个一般网上很少讲到的东西 ...

  7. SQL Server数据库 bcp导出备份文件应用

    /**  * 授权  */ EXEC sp_configure 'show advanced options',1; go reconfigure; go exec sp_configure 'xp_ ...

  8. SQL SERVER数据库状态(脱机,联机,可疑)及SQL设置语句详解

      首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库 ...

  9. 4. SQL Server数据库状态监控 - 作业状态

    原文:4. SQL Server数据库状态监控 - 作业状态 有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Serv ...

随机推荐

  1. CF特征码遍历

    HOOK_游戏代码 8B 00 8B 08 8B 91 A8 00 00 00 地址-15 4E5E954E5EA 44E5E95DIRECT 从733E00开始搜 6B 00 94 51 6C 地址 ...

  2. 栈的实现——java

    和C++一样,JDK包中也提供了"栈"的实现,它就是集合框架中的Stack类.关于Stack类的原理,在"Java 集合系列07之 Stack详细介绍(源码解析)和使用示 ...

  3. 去除html代码中的标签

    public static String htmlText(String inputString) { String htmlStr = inputString; //含html标签的字符串 Stri ...

  4. class字节码结构(一)(字节码结构和字节常量池的结构)

    <Java虚拟机原理图解> 1.1.class文件基本组织结构 关于变量的几个叫法: 局部变量/全局变量:很好区分根据所在位置. 类变量:静态的全局变量. 类常量:全局的final修饰的变 ...

  5. NSCache 的好处

    相较于 NSDictionary 线程安全 系统资源将要耗尽时,自动删减缓存 自动删减"最久未使用的"对象 不会自动拷贝键.因为有些键不支持拷贝操作 可以和 NSPurgeable ...

  6. (原创)定时线程池中scheduleWithFixedDelay和scheduleAtFixedRate的区别

    scheduleAtFixedRate 没有什么歧义,很容易理解,就是每隔多少时间,固定执行任务. scheduleWithFixedDelay 比较容易有歧义 貌似也是推迟一段时间执行任务,但Ora ...

  7. POJ 1287

    #include<iostream> #include<stdio.h> #define MAXN 100 #define inf 1000000000 using names ...

  8. django 的ajax 请求,使用form的验证机制。

    所有的form都需要在后台验证,前台验证是不可靠的,django的验证是后台验证,前台提示错误信息. js验证是在前台的,无需发送消息给后台,但安全性不可靠,强调的是用户体验. 要求,使用弹出框,弹出 ...

  9. WebForm——浏览器兼容、旋转、缩放、倾斜、移动

    transform属性 一.旋转-rotate(角度deg)-deg为角度单位 -o-transform:rotate(45deg) Opera -ms-transform:rotate(45deg) ...

  10. 原生ajax封装,包含post、method方式

    原生ajax封装,包含post.method方式 function ajax(method, url, data, success) { var xhr = null; try { xhr = new ...