一台老旧的数据库服务器(SQL Server 2005)忽然报以下错误,并且数据库处于RECOVERY PENDING ,检查错误日志,发现这个错误是忽然出现的。没有任何其它人为误操做致使sql
Date 2019/4/15 10:57:47
Log SQL Server (Archive #1 - 2019/4/15 11:16:00)
Source spid2s
Message
LogWriter: Operating system error 21(error not found) encountered.
期间收到大量做业的告警,做业运行失败报“Unable to connect to SQL Server '(local)'. The step failed.”,继续检查错误日志,就能看到都是对应数据库的事务日志报这个错误:数据库
关于“Operating system error 21”这个错误,一度觉得是硬件错误引发的,可是系统管理员反馈底层硬件正常,也未作任何操做。检查系统日志,只发现有一些驱动报错的信息,系统管理员确认这个不会影响磁盘。服务器
因而我就重启了一下SQL Server 服务,这个错误就消失了,问题就解决了。网上也有很多关于这个Operating system error 21”这个错误(请见参考资料),都是经过重启SQL Server服务或将数据库offline,而后online解决问题。重启事后,对数据库作了一下DBCC CHECKDB也没有任何问题。app
第一次遇到这种问题,虽然经过重启解决了问题,可是感受稀里糊涂,莫名其妙:不清楚问题产生的根源是什么。为何重启SQL Server服务就能解决问题呢?特此记录一下这个问题。留待之后能解决!spa
参考资料:日志
https://serverfault.com/questions/104025/dbcc-checkdb-the-operating-system-returned-error-21the-device-is-not-readycode