昨天下午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. 软件开发常用设计模式—单例模式总结(c++版)

    单例模式:就是只有一个实例. singleton pattern单例模式:确保某一个类在程序运行中只能生成一个实例,并提供一个访问它的全局访问点.这个类称为单例类.如一个工程中,数据库访问对象只有一个 ...

  2. JavaScrict中的断言调试

    今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...

  3. Oracle RAC客户端tnsnames.ora相关配置及测试

    1.Oracle RAC服务端/etc/hosts部分内容如下 2.查看服务端的local_listener和remote_listener参数 3.客户端tnsnames.ora配置参考 3.1 1 ...

  4. T-SQL CROSS APPLY、MERGE

    写在前面 刚才看项目里一个存储过程,也是好长时间没有使用Sql Server2008了,好多写法和函数感觉到陌生,这就遇到了CROSS APPLY 和MERGE的语法,两者之前完全没接触过. 所以专门 ...

  5. TCP的定时器

    TCP的定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的.在TCP中,会有四种定时器: 重传定时器 坚持定时器 保活定时器 2M ...

  6. Oracle索引梳理系列(四)- Oracle索引种类之位图索引

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  7. DevExtreme 学习应用[2]

    DevExtreme 学习应用[2] 调用WebService数据 1那么首先建立WebService using System; using System.Collections.Generic; ...

  8. 【Win10开发】Toast通知

    Toast 通知是一种发送给用户的暂时消息,包含相关的.具有时效性的信息,并且提供对应用中相关内容的快速访问.它可显示你是在另一个应用中.在“开始”屏幕上.在锁屏上,还是在桌面上.Toast 应该被视 ...

  9. php xml 文件读取 XMLReader

    php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...

  10. 【转】mysql_fetch_row , mysql_fetch_array , mysql_fetch_assoc 的区别

    <?php $link = mysql_connect('localhost', 'root', ”); mysql_select_db('abc', $link); $sql = “selec ...