代码改变世界

LogWriter: Operating system error 21(error not found) encountered

  潇湘隐者  阅读(988)  评论(0编辑  收藏  举报

 

一台老旧的数据库服务器(SQL Server 2005)突然报如下错误,而且数据库处于RECOVERY PENDING ,检查错误日志,发现这个错误是突然出现的。没有任何其它人为误操作导致

 

 

clip_image001

 

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.,继续检查错误日志,就能看到都是对应数据库的事务日志报这个错误:

 

 

clip_image002

 

 

关于Operating system error 21这个错误,一度以为是硬件错误引起的,但是系统管理员反馈底层硬件正常,也未做任何操作。检查系统日志,只发现有一些驱动报错的信息,系统管理员确认这个不会影响磁盘。

 

clip_image003

 

 

于是我就重启了一下SQL Server 服务,这个错误就消失了,问题就解决了。网上也有不少关于这个Operating system error 21这个错误(请见参考资料),都是通过重启SQL Server服务或将数据库offline,然后online解决问题。重启过后,对数据库做了一下DBCC CHECKDB也没有任何问题。

 

第一次遇到这种问题,虽然通过重启解决了问题,但是感觉稀里糊涂,莫名其妙:不清楚问题产生的根源是什么。为什么重启SQL Server服务就能解决问题呢?特此记录一下这个问题。留待以后能解决!

 

 

参考资料:

 

https://serverfault.com/questions/104025/dbcc-checkdb-the-operating-system-returned-error-21the-device-is-not-ready

https://dba.stackexchange.com/questions/165816/the-operating-system-returned-error-21-the-device-is-not-ready

https://social.msdn.microsoft.com/Forums/en-US/c84d92ad-751c-42fb-bddf-ce07a20e1893/the-operating-system-returned-error-21the-device-is-not-ready-to-sql-server-during-a-read-at?forum=sqltools

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2015-04-15 ORA-19563: header validation failed for file
2014-04-15 ORACLE opatch命令学习实践
点击右上角即可分享
微信分享提示