昨天下午5点多收到几封告警邮件,我还没有来得及看,GLE那边的同事就电话过来,说数据库出现告警了。让我赶紧看看,案例具体信息如下所示:

告警邮件内容:

DATE/TIME: 2015/1/23 17:08:52

DESCRIPTION: The log for database 'ecmsDB' is not available. Check the event log for related error messages. Resolve any errors and restart the database.

 

错误日志内容:

看着这个库确实没有多少印象,很奇怪的是每次事务日志备份时,都会看到“starting up datatbase"这类信息

“Starting up database 'ecmsDB'.”

 

日期     2015/1/23 17:03:44

日志     SQL Server (存档编号1 - 2015/1/24 0:00:00)

 

源     spid116

 

消息

CHECKDB for database 'ecmsDB' finished without errors on 2015-01-23 00:00:16.247 (local time). This is an informational message only; no user action is required.

于是检查一下该数据库的一些基本信息,发现该数据库被人启动了”自动关闭“属性,如下所示

SELECT name  

      ,create_date

      ,compatibility_level

      ,collation_name

      ,is_auto_close_on

      ,is_cleanly_shutdown

FROM sys.databases WHERE name='ecmsDB'

 

数据库的排序规则(collation_name )

     作为数据库中的默认排序规则。NULL = 数据库没有联机,或 AUTO_CLOSE 设置为 ON 且数据库已关闭。

自动关闭

指定在上一个用户退出后,数据库是否完全关闭并释放资源。 可能的值包括 True 和 False。 如果设置为 True,则在上一个用户注销之后,数据库会完全关闭并释放其资源。

is_cleanly_shutdown

1 = 数据库完全关闭;在启动时不需要恢复

0 = 数据库并未完全关闭;在启动时需要恢复

分析与解决方法:

我将数据库ecmsDB脱机,然后联机后问题解决,检查数据库dbcc checkdb('ecmsDB')发现没有什么问题,然后将“自动关闭”属性设置为False,那么为什么会出现这个问题呢? 根据错误信息表示日志已损坏(log corruption). 我有点不得其解,没有弄明白原因? 难道数据库在“自动关闭”开启后,遇到死锁事务会造成这个错误?这会不会是一个bug来的呢?比较这种特殊案例是比较少见的。有两个外国人遇到的案例情况跟我一致。如下所示

https://dacosta9.wordpress.com/2014/06/26/sql-server-error-9001-severity-21-state-5-the-log-for-database-database_name-is-not-available-check-the-event-log-for-related-error-messages-resolve-any-errors-and-restart-the-database-e/

http://www.sqlservercentral.com/Forums/Topic1037190-1550-2.aspx

在微软官方也看到有人提了这个bug,但是好像不了了之。

https://connect.microsoft.com/SQLServer/feedback/details/686313/deadlock-with-system-process-causes-the-log-for-database-xxx-is-not-available-error

Error: 9001, Severity: 21, State: 5 The log for database 'xxxx' is not available的更多相关文章

  1. Sybase ASE报错:server Error: 8242, Severity: 16, State: 1

    昨天上午,同事反映某系统在执行存储过程的过程中报错了,报错的信息异常如下: 05:00000:00009:2014/06/09 15:45:30.34 server Error: 8242, Seve ...

  2. The transaction log for database 'xxxx' is full due to 'ACTIVE_TRANSACTION'

    今天查看Job的History,发现Job 运行失败,错误信息是:“The transaction log for database 'xxxx' is full due to 'ACTIVE_TRA ...

  3. PHP: configure: error: mysql configure failed. Please check config.log for more information.

    为php增加mysql模块时报错 configure: error: mysql configure failed. Please check config.log for more informat ...

  4. Mybatis批量删除之Error code 1064, SQL state 42000;

    (一)小小的一次记载. (二):最近的项目都是使用MyBatis,批量新增自己都会写了,但是一次批量删除可把我给折腾了下,写法网上都有,但是照着做就是不行,最后问公司的人,问网友才得到答案,那就是jd ...

  5. configure: error: mysql configure failed. Please check config.log for more information.

    为php添加mysql模块时报错 configure: error: mysql configure failed. Please check config.log for more informat ...

  6. 升级openssh编译报错“configure: error: *** working libcrypto not found, check config.log”的解决办法

    问题描述 在linux上,欲将OpenSSH_6.4p1编译升级到OpenSSH_8.0p1时,执行了./configure --prefix=/usr --sysconfdir=/etc/ssh - ...

  7. The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'

    今天早上,Dev跟我说,执行query statement时出现一个error,detail info是: “The transaction log for database 'tempdb' is ...

  8. The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid

    昨天一台SQL Server 2008R2的数据库在凌晨5点多抛出下面告警信息: The log scan number (620023:3702:1) passed to log scan in d ...

  9. The transaction log for database 'XXX' is full due to 'ACTIVE_TRANSACTION'.

    Msg 9002, Level 17, State 4, Line 4The transaction log for database 'Test' is full due to 'ACTIVE_TR ...

随机推荐

  1. XML文件解析并利用SimpleAdapter将解析结果显示在Activity中

    首先创建一个实体类 Mp3Info用来存储解析的XML文件中的内容: public class Mp3Info implements Serializable{ private static fina ...

  2. spring-boot - demo

    当我发现把最初的一个demo整的面目全非的时候,突然想要找一个简单的demo做测试,发现与其在原来的上面该,还不如新建一个demo. 官方入门:http://projects.spring.io/sp ...

  3. byte为什么要与上0xff?

    无意间翻看之间的代码,发现了一段难以理解的代码. byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; ...

  4. 7.8 数据注解特性--Column

    Column特性可以用到类的属性中,Code-First默认的约定是使用属性名称作为列名.这个Column特性可以打破这个特性. 看下面的代码: using System; using System. ...

  5. 在 WCF 中使用高效的 BinaryFormatter 序列化

    本文将定义一个 WCF 终结点行为扩展,以在 WCF 中使用更高效的 BinaryFormatter 进行二进制序列化,并实现对是否使用传统二进制序列化功能的可配置. 介绍 实现步骤 使用方法 效果 ...

  6. C#在winform中调用系统控制台输出

    在Winform程序中有时候调试会通过Console.Write()方式输出一些信息,这些信息是在Visual Studio的输出窗口显示. 所以就会想,能不能调用系统的Cmd窗口输出呢,经过一番查阅 ...

  7. WCF入门教程(五)配置文件

    WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...

  8. 【NopCommerce源码架构学习-二】单例模式实现代码分析

    单例模式是是常用经典十几种设计模式中最简单的..NET中单例模式的实现也有很多种方式.下面我来介绍一下NopCommerce中单例模式实现. 我之前的文章就分析了一下nop中EngineContext ...

  9. Jsonp跨域访问

    很早之前看过好几篇跨域访问的文章,然后做项目的时候基本没有遇到跨域访问的问题.不过该来的还是会来,前些天终于让我遇到了.于是重温了一下原理这些,再进行实战.于是现在也敢通过实战后的一些理解来和大家分享 ...

  10. Class.forName("com.mysql.jdbc.Driver") ;

    try { Class.forName("com.mysql.jdbc.Driver") ; } catch(ClassNotFoundException e) { System. ...