SQL SERVER数据库状态
一个SQL SERVER数据库会处于很多种状态,例如 ONLINE 、RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT、EMERGENCY 、OFFLINE等等。
一、下图主要反映了数据库的主要状态之间的切换
二、各种状态的简单介绍
1、ONLINE (在线)
这种状态下,数据库可以被普通用户访问,可以被查询和修改。
2、RESTORING (正在还原)
数据库在还原状态下
3、RECOVERING (正在恢复)
(1)、Recovering主要处理3件事情:
[1]、分析要做的工作:就是在事务日志文件中,找到那些事务要重做,那些事务要回滚 [2]、Redo:将已经提交的但是没有写入数据文件的事务,做前滚 [3]、undo:对没有提交的事务做回滚
(2)、以下几个动作会让数据库进入Recovering:
[1]、创建数据库 [2]、Alter Online,上线数据库 [3]、RESTORE WITH RECONVERY:恢复数据库 [4]、DatabaseStartup,数据库启动,如果数据库设置了自动关闭,就会在用户第一次访问的时候做这个动作。
(3)、此时如果遇到问题就进入RECOVERY_PENDING。如果正常就会变成ONLINE。
4、RECOVERY_PENDING(等待恢复)
(1)、如果数据库在做恢复的时候不能正常打开所有的数据库文件,数据库会进入RECOVERY PENDING状态。
(2)、这种情况下,最可能的原因是丢失数据文件或日志文件。
(3)、解决办法:用ALTER ONLINE再恢复一次,或者使用备份恢复
5、SUSPECT (置疑)
(1)、当数据库做恢复的时候由于数据文件或者日志文件里的损坏而失败,数据库会进入SUSPECT状态。
(2)、解决方法:
[1]、再做一次ALTER ONLINE ,让SQLSERVER再做一次恢复
[2]、放弃当前数据库,还原备份
[3]、将数据库状态设置为EMERGENCY,继续尝试修复数据库
6、EMERGENCY (紧急)
(1)、紧急模式。
(2)、这个状态下,SQLSERVER对没有完成恢复的数据库开放一个只读窗口,供管理员在没有备份的情况下尽可能地挽救数据。
7、OFFLINE (脱机)
(1)、数据库处于离线状态,这时候数据库也不能被访问。
(2)、可以使用ALTER ONLINE命令,让数据库开始恢复,从而进入ONLINE状态。
最新文章
- 三元运算与lambda表达式
- jstl_fmt
- 牛客网程序员面试金典:1.2——原串翻转(java实现)
- composer更新不成功,启用国内镜像网站的配置更改办法
- Android layout_weight的用法
- spring源码深度解析-2功能扩展
- PHP函数——urlencode() 函数
- 012. asp.net生成验证码图片(汉字示例/字母+数字)
- 为PHP增加PDO-Mysql驱动
- hdu 4005 边连通度与缩点
- FloatingActionButton
- javascript——面向对象程序设计(2)
- Centos下搭建 nginx+uwsgi+python
- 用webpack搭建react开发环境
- OC——关于KVO
- C#移位运算(左移和右移)
- 关于Linux虚拟化技术KVM的科普 科普五(From 世民谈云计算)
- H5 id选择器
- SVN解决本地版本控制与服务器版本冲突问题
- SpringBoot 配置文件详解
热门文章
- eas启动服务器时非法组件
- Git 基础教程 之 Git 安装 (windows)
- mysql查询昨天 一周前 一月前 一年前的数据
- android的数据与访问(1)-我的app配置参数文件放在哪儿?
- orcale 单行函数之数字函数, 日期函数
- CodeForces - 340 C - Tourist Problem
- 简述synchronized和java.util.concurrent.locks.Lock的异同
- git 添加到环境变量
- H - Can you answer these queries? ( POJ - 3264 )
- Linux去重命令uniq(转)