我是靠谱客的博主 纯真灯泡,最近开发中收集的这篇文章主要介绍sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

环境: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

最后

以上就是纯真灯泡为你收集整理的sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘的全部内容,希望文章能够帮你解决sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部