概述
环境: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可以发现还原报错时有以下记录
所以这个报错应该跟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(设备未就绪。)‘所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复