windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败

官网:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads
我的系统是win11的,一开始安装的是2019版本的SQL server安装了好多次,每次都是快结束的时候报错:等待数据库引擎恢复句柄失败。
我以为是2019不兼容win11的原因,随后我又下载了2016版的SQL server,但是也是同样的报错。
最后查了很久的百度,发现可能是磁盘扇区的原因,SQL Server支持512B和4KB大小的扇区,有些磁盘扇区大小在4KB以上。

查询磁盘参数方法:
以管理员身份运行PowerShell

输入命令
D代表的是D盘,根据自己的需要改成自己本机的盘就可以了

fsutil fsinfo sectorinfo D:

如果查询参数中的这两个不是4096(指定就是4*1024b=4k),那SQL server安装不上的原因大概就是这个了!!!
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败_第1张图片
解决办法:
1.格式化硬盘,指定扇区大小

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"

重启电脑,以管理员身份运行PowerShell,输入命令:
D代表的是D盘,根据自己的需要改成自己本机的盘就可以了
看到这两个参数已经成功改好了

fsutil fsinfo sectorinfo D:

windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败_第2张图片

我是使用的第2种方法成功解决问题的,只需要把安装失败的SQL server卸载,然后重新安装就可以了,最后成功安装SQL server2016版

后续更新
看到有人留言和私信我,改完扇区之后如何改回去。为此我专门实测了一下,以下方法本人实测可以改回原扇区大小
第一步
分别执行以下两个命令

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name   "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 32767"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name   "ForcedPhysicalSectorSizeInBytes"

第二步
执行完命令后,重启电脑

第三步
重启之后输入命令查看修改结果
管理员身份运行 Windows powershell
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败_第3张图片
输入命令

fsutil fsinfo sectorinfo D:

windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败_第4张图片
可以看到已经被修改了

补充知识:
可能对你了解扇区有一定的帮助,512b,4k,以及32768b

4K对齐就是符合4K扇区定义格式化过的硬盘,并且按照4K扇区的规则写入数据。4K对齐相关联的是一个叫做高级格式化的分区技术。高级格式化是国际硬盘设备与材料协会为新型数据结构格式所采用的名称。

主要是将硬盘的模拟扇区(512B)对齐到8的整数倍个实际4K扇区,即4096B*8=32768B,其正好跨过了63扇区的特性,从第64个扇区对齐。4K对不齐是因为在NTFS6.x以前的规范中,数据的写入点正好会介于在两个4K扇区的之间。

也就是说即使是写入最小量的数据,也会使用到两个4K扇区,显然这样对写入速度和读取速度都会造成很大的影响。

你可能感兴趣的:(笔记,数据库,sql,sqlserver)