DBCC CheckDB操作系统返回错误21(设备未准备就绪。)

在文件'E:\ SQL数据库\ S ***** d \ NewAdvWorks.mdf'中的偏移量为0x0000000001c000处读取期间,操作系统返回错误21(设备未准备好)。 SQL Server错误日志和系统事件日志中的其他消息可能提供更多的细节。 这是一个严重的系统级错误,威胁数据库的完整性,必须立即纠正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 这个错误可能是由许多因素引起的; 有关更多信息,请参阅SQL Server联机丛书。

什么对我有效:

alter database [database_name] set offline 

等几秒钟…

 alter database [database_name] set online 

这比重新启动SQL Server更好,因为重新启动SQL Server会使所有数据库脱机(而不仅仅是不可访问的数据库)。

今天我遇到了同样的错误。 重新启动SQL Server服务修复了它。

SQL Server错误日志和Windows事件日志显示相同的错误:

操作系统在文件“blah.mdf”中的偏移量0x00000000026000处读取期间向SQL Server返回错误21(设备未准备就绪)。 SQL Server错误日志和系统事件日志中的其他消息可能提供更多的细节。 这是一个严重的系统级错误,威胁数据库的完整性,必须立即纠正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 这个错误可能是由许多因素引起的; 有关更多信息,请参阅SQL Server联机丛书。

和:

错误:823,严重性:24,状态:2

在阅读Robert van den Berg的回答之后,如果有其他数据库需要保持联机,我会先尝试将数据库脱机,然后在线。

首先阅读错误信息中指出的日志。

然后尝试重置服务器,然后再次运行DBCC CheckDB