关于SQL Server 各种安装失败均失败,报错“等待数据库引擎恢复句柄失败”的经验分享

  最近安装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:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"

    验证:Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes"(查看强制模拟结果)

    然后重启电脑,安装SQL Server。

     注意:通过强制模拟扇区大小为4Kb后,PhysicalBytesPerSectorForAtomicity值是不会改变的,比如我的电脑,在强制模拟后,PhysicalBytesPerSectorForAtomicity值还是32768

 

连续2周,各种安装方法,结果惊奇的一致,永远的“数据库引擎服务”-失败,永远的“等待数据库引擎恢复句柄失败”:

 

 

 强制模拟后,安装结果,终于成功了:

 

 

此方案不是我的原创,是我在微软社区提问后,由  提供的解决方案,在此表示感谢。

微软社区问答地址:win11环境下,SQL SERVER在M.2、PCLE的硬盘接口下无法安装 - Microsoft Community

 

posted @ 2022-03-16 16:29  ChengHB  阅读(12258)  评论(6编辑  收藏  举报