sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘

31 篇文章 4 订阅
22 篇文章 0 订阅

环境:windows 2016 + sqlserver 2017

备份时正常,还原时一直卡在下面的界面不动

查看日志发现两个报错

The operating system returned the error '21(设备未就绪。)' while attempting 'GetDiskFreeSpace' on 'Z:\'.

The operating system returned the error '21(设备未就绪。)' while attempting 'GetDiskFreeSpace' on 'A:\'.

查看发现A是软盘,Z是DVD驱动器,感觉还原应该不会用到这俩,不知道为啥报这种错

打开profile可以发现还原报错时有以下记录

SQL SERVER - The Operating System Returned the Error 21(The Device is Not Ready.) While Attempting 'GetDiskFreeSpace' on 'A:\' errorlog-error-dmv_02-800x137

所以这个报错应该跟sys.dm_os_enumerate_fixed_drives视图有关系

查询这个视图,会发现同样的报错

select * from sys.dm_os_enumerate_fixed_drives;

继续搜索发现sys.dm_os_enumerate_fixed_drives是sqlserver 2017新加的一个视图,用来替代原来的xp_fixeddrives获取空闲空间,所以这应该还是2017才会遇到的问题

解决方法:

法1. 开始 -> 搜索“设备管理器” -> 禁用软盘和DVD驱动器

如何禁用软驱,怎么禁用软驱-百度经验

禁用之后可以看到查询视图不再报错

还原也能正常进行

法2:禁用该新特性(不大推荐)

sp_configure 'show advanced options', 1; 
GO
RECONFIGURE;  
GO  
sp_configure 'SMO and DMO XPs', 0;  
GO  
RECONFIGURE  
GO

参考

SQL SERVER - The Operating System Returned the Error 21(The Device is Not Ready.) While Attempting 'GetDiskFreeSpace' on 'A:\' - SQL Authority with Pinal Dave

Dharmendra Keshari - SQL Server on Linux, SQL Server

SQL Server Restore Database Error in SQL Server Management Studio

KB4046638 - Add the ability to disable or enable a few new DMVs and DMFs introduced in SQL Server 2017 - Microsoft Support

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
操作系统返回误23(数据误,循环冗余校验)是一个常见的误消息,通常表示在进行数据传输时发生了一些问题。循环冗余校验(CRC)是一种用于检测误的校验方法,它通过对数据进行多项式计算来生成一个校验码,然后将该校验码与接收到的数据进行比较来判断是否存在误。 当操作系统返回误23时,意味着数据传输过程中发现了循环冗余校验误。这可能是由于以下原因导致的: 1. 数据传输介质损坏:可能是硬盘、U盘或其他存储介质出现了物理损坏,导致无法正确读取或写入数据。这种情况下,需要更换或修复介质。 2. 数据传输过程中的干扰:可能由于信号干扰、电压不稳定或传输线路问题等造成了数据传输过程中的误。这种情况下,需要检查相关硬件设备或更换传输线路。 3. 文件或数据损坏:可能是文件本身已经损坏,导致无法正确读取。这种情况下,可以尝试使用数据恢复工具来修复或恢复文件。 解决这个问题的方法可以有以下几种: 1. 重新传输数据:如果误是由于传输介质或传输过程中的干扰导致的,可以尝试重新传输数据,确保传输的完整性。 2. 使用校验工具:可以使用一些专门的校验工具来检测和修复数据误。这些工具可以通过重新计算校验码来修复或删除校验误的数据。 3. 数据恢复:如果文件或数据已经受损,可以尝试使用数据恢复工具来恢复丢失或损坏的数据。这些工具可以尝试修复文件的损坏部分或提取可用的数据。 总之,当操作系统返回误23(数据误,循环冗余校验)时,需要首先确定误产生的原因,然后采取适当的措施来修复或恢复数据。但在进行任何操作之前,应该首先备份数据,以防止进一步的数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值