昨天下午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. 1Z0-053 争议题目解析692

    1Z0-053 争议题目解析692 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 692.Your company wants to upgrade the production ...

  2. OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)

    图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移 ...

  3. 关于从JSP页面插入数据到数据库中乱码问题的解决

    问题描述:最近我在写一个j2ee的留言板系统模块,遇到了一个非常让我头大的问题,当我从JSP页面输入数据后,通过hibernate中的业务逻辑类HQL语句把这个数据插入到本地的mysql数据库中,可是 ...

  4. SQL Server时间粒度系列

        工作中经常遇到针对业务部门提出不同时间粒度(年.季度.月.周.日等等日期时间粒度,以下简称时间粒度)的数据统计汇总任务,也看到不少博友针对这方便的博文,结合SQL Server的日期时间函数和 ...

  5. ASP.NET MVC 模块与组件(一)——发送邮件

    我的见解: 模块化与组件化是编程的一种思想:提高代码的重用性,提高开发效率. 常见的模块化就是函数与各种类型的封装,若是代码具有更高的重用价值(能够提供给别人使用),建议可以考虑封装成动态链接库(dl ...

  6. super.getClass()方法调用

    下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] a ...

  7. 从零开始学Python08作业源码:开发简单的FTP(仅供参考)

    服务器端:server_server.py #!usr/bin/env python # -*- coding:utf-8 -*- # auther:Mr.chen # 描述: import sock ...

  8. 怎么用SAX生成xml文件

    public void createXML() throws Exception{ Book b1 = new Book(); b1.setId("1"); b1.setName( ...

  9. SpringMvc面试题

    f-sm-1. 讲下SpringMvc和Struts1,Struts2的比较的优势 性能上Struts1>SpringMvc>Struts2 开发速度上SpringMvc和Struts2差 ...

  10. 【JAVA并发编程实战】9、锁分段

    package cn.study.concurrency.ch11; /** * 锁分段 * @author xiaof * */ public class StripedMap { //同步策略:就 ...