用管理员终端测试文件卷分配大小
例:fsutil fsinfo sectorinfo C:(此处的C盘为SQL server 安装的位置,安装在哪个盘就测试哪个盘)
此处512或者4096为正常大小
例如下表的对比,左侧即为正常大小,则此教程不适用,
右侧16384即为超出的磁盘扇区大小,则此教程适用!!!
PhysicalBytesPerSectorForAtomicity : 4096 | PhysicalBytesPerSectorForAtomicity : 16384 |
PhysicalBytesPerSectorForPerformance : 4096 | PhysicalBytesPerSectorForPerformance : 16384 |
此问题原因在运行 Windows 11 的系统上,存储设备磁盘支持的 大于4 KB 磁盘扇区大小。
由于文件系统不受支持,SQL Server将无法启动,因为SQL Server当前支持 512 字节和 4 KB 的扇区存储大小。所以解决方法需要虚拟磁盘扇区大小为4KB或512字节。
-
注册表编辑器
1.导航到 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device。
2.在 “编辑 ”菜单上,指向“ 新建”,然后选择“ 多字符串值”。 将其命名为 ForcedPhysicalSectorSizeInBytes。
3.修改新值,写入 *4095 。 单击“ 确定” 并关闭注册表编辑器。
以管理员身份的命令提示符(Windows PowerShell)
①添加密钥,控制台输入(一定要输对):
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
②验证密钥是否已成功添加,控制台输入:
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes"
③添加密钥,控制台输入:
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服务进程发现可以正常启动(如果重启sql server服务发现还不行,但已经不是1067的错误代码,只需要重新安装sql server发现可成功启动!)