Error: 9001, Severity: 21, State: 5 The log for database 'xxxx' is not available

    昨天下午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

时间: 2024-08-01 03:17:53

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

ORA-00205: error in identifying control file, check alert log for more info

境:oracle10gR2   solaris10 操作:在没有创建pfile的情况下,直接执行了以下命令 1 SQL>create pfile from spfile; 2 SQL>shutdown immediate 3 SQL>startup 4 ORA-00205: error in identifying control file, check alert log for more info 查看alter_TEST.log文件 Tue Jul 03 13:37:49 CST

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

在centos下安装好了mysql,用root帐号连上mysql,然后创建一个数据库,提示下图错误: 提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'.网上找了一个比较流行的方法(见方法一),搞定了.今天又用这个试了试,却搞不定,在网上找了半天,终于发现是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误

ERROR 1044 (42000): Access denied for user 'axt'@'%' to database 'dbadap

环境:MySQL Sever 5.1 + MySQL命令行工具 问题:MySQL用户远程登录后操作数据库遇到此问 题:ERROR 1045 (28000): Access denied for user 'axt'@'localhost' (usingpassword: YES). 解决:权限问题.重新授权,flush后重启MySQL服务. 也可以使用 Navicat for MySQL的用户管理解决(数据库------>右键------>管理用户------->授予用户权限 ). 如图

[解决] Error Code: 1044. Access denied for user 'root'@'%' to database

今天在测试集群用的mysql上,遇到个权限的问题: SQLException : SQL state: 42000 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'root'@'%' to database 'ranger' ErrorCode: 1044 我是以root用户登录mysql的,怎么还会遇到这问题呢,有点猫腻,我查看了下mysql下user表的各用户的权限信息 my

Exception: The transaction log for database is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc.错误解决

升级数据库到最后一步,X,遇错. 还好,是定位数据库错误,以前怕LOG日志变大,作了限制. 取消即可. 顺便列几条要用的命令:   New-SPWebApplication -Name "Helios80" -ApplicationPool "helios80AppPool" -AuthenticationMethod "NTLM" -ApplicationPoolAccount "A" -Port 80 -URL "

SQL Sever 博客文章目录(2016-07-06更新)

SQL Server方面的博客文章也陆陆续续的写了不少了,顺便也将这些知识点整理.归纳一下下.方便自己和他人查看.   MS SQL 数据类型   三大数据库对比研究系列--数据类型   MS SQL 表和视图   数据库表的基本信息,你知道吗? 数据查询表,列名对比 MS SQL 建表SQL的脚本 查看数据库.表.索引的物理存储情况 慎用SELECT INTO复制表   MS SQL 索引约束 [翻译] 聚集索引表 VS 堆表 SQL SERVER 中is null 和 is not null

Database 'xxxx' is being recovered. Waiting until recovery is finished.

巡检发现一个SQL SERVER Express 2005数据库备份时出现下面错误: Database 'xxxx' is being recovered. Waiting until recovery is finished. 出 现这个错误有点让人纳闷,有很多情况可能出现这个错误,例如,系统出现异常重启,或数据库服务被人为突然重启,数据库服务启动后,数据库正在恢复中,此时 备份就会出现这种错误提示,但是检查错误日志发现没有任何异常错误信息,检查数据库还原记录,也没有发现该数据库在备份时间段有

SQL Server 数据库 Suspect 解决案例

  生产环境: SQL Server 2008 R2 Active/Passive Nodes,Windows Server 2008 R2 SP1 Cluster, vSphere 5.x 发生起始 6 am 接到Application Team报告 BiztalkMsgBoxDb进入suspect模式,不可以访问. 报告事件,减少用户压力 简单的和App Manager电话了下,了解他们Apps层面down time,在Ticket中录入大概发生时间,事件描述,最近有没有发生过任何变更事件.

SQL Server数据库Suspect解决

  生产环境: SQL Server 2008 R2 Active/Passive Nodes,Windows Server 2008 R2 SP1 Cluster, vSphere 5.x 发生起始 6 am 接到Application Team报告 BiztalkMsgBoxDb进入suspect模式,不可以访问. 报告事件,减少用户压力 简单的和App Manager电话了下,了解他们Apps层面down time,在Ticket中录入大概发生时间,事件描述,最近有没有发生过任何变更事件.