最近安装SQL 2019遇到这个问题,试过网上几乎所有办法,都安装不上。最后在微软社区提问解决了,由于这个问题不常见,并且网上几乎没有正确的解决方案,因此将我的解决过程及经验记录分享一下,也为后来者提供参考。
1、如果是权限问题,现有的网上很多修改权限的方案是可以解决安装问题的,在此不做介绍。
2、按网上修改了权限、或其他一系列正确操作后,还是安装不上的。这种情况的用户,有一个共同点,电脑是近几年内新购的(现在是2022.03)
以下只是第2种情况的分析和解决
首先,导致这个问题原因是硬盘扇区大小与SQL Server不兼容。
目前SQL Server只支持512B和4KB大小的扇区,而现在一些新的硬件设备,扇区大小有时会大于4Kb,与SQL Server不兼容,所以会一直安装不上。
可以查看自己硬盘分区的扇区大小是否与SQL Server兼容,用管理员身份运行PowerShell,输入fsutil fsinfo sectorinfo D:(如想查询其他分区,修改对应盘符即可)
在返回的信息中,查看 PhysicalBytesPerSectorForAtomicity的值,如果值不是512或4096,则代表SQL Server无法安装到此硬盘上。
这个是我的电脑扇区大小
解决方案:
方案1:格式化硬盘,重新分配扇区大小,让扇区大小与SQL Server匹配。
此方法可以将整个硬盘格式化掉,当然这样做的结果就是丢失所有文件,并且还需要重装系统。也可以格式化一个硬盘分区,将SQL Server安装到对应的分区就行。
方案2:强制模拟扇区大小为4Kb
此方法不会影响硬盘分区,但可能会造成一点性能方面的损失。
用管理员身份运行PowerShell,
输入:New-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesstornvmeParametersDevice" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"
验证:Get-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesstornvmeParametersDevice" -Name "ForcedPhysicalSectorSizeInBytes"(查看强制模拟结果)
然后重启电脑,安装SQL Server。
注意:通过强制模拟扇区大小为4Kb后,PhysicalBytesPerSectorForAtomicity值是不会改变的,比如我的电脑,在强制模拟后,PhysicalBytesPerSectorForAtomicity值还是32768
连续2周,各种安装方法,结果惊奇的一致,永远的“数据库引擎服务”-失败,永远的“等待数据库引擎恢复句柄失败”:
强制模拟后,安装结果,终于成功了:
此方案不是我的原创,是我在微软社区提问后,由
提供的解决方案,在此表示感谢。微软社区问答地址:win11环境下,SQL SERVER在M.2、PCLE的硬盘接口下无法安装 - Microsoft Community
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!