zoukankan      html  css  js  c++  java
  • 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状态。

  • 相关阅读:
    ThinkPHP6.0.5 验证码 遇到的坑 (验证失败)
    css已知宽高和未知宽高的居中定位
    有关CLR的初学小整理(可能理解不深刻,望大牛指出)
    关于CRC循环冗余校验的总结(C#)
    lesson 4 再谈继承多态,抽象类和接口
    Lesson 3
    Lesson 2
    lesson 1
    08_Spring实现action调用service,service调用dao的过程
    07_配置文件中决定接口的实现类
  • 原文地址:https://www.cnblogs.com/firstdream/p/7273793.html
Copyright © 2011-2022 走看看