升级三星固态硬盘能导致SQL Server不能启动,连重装都失败了,4K扇区大小影响有点大

问题

有一段时间没用了VS2022了,今天把它升级到17.12,然后打开项目发现localdb不能用了,启动不起来。

Win11 24H2
SQL Server LocalDb 2019
Visual Studio 2022 17.12
C:\Windows\System32>sqllocaldb delete localDB1
LocalDB instance "localDB1" deleted.

C:\Windows\System32>sqllocaldb create localDB1
Creation of LocalDB instance "localDB1" failed because of the following error: Error occurred during LocalDB instance startup: SQL Server process failed to start.

寻找原因

搜索了下,又问了下AI都没有结果。看了下localdb的版本还是2019,并未升级,不应该啊。

卸载现有的2019,然后重新安装2019. 问题依旧。

下载安装sql server express 2019,竟然安装失败。

找到了有人因三星固态硬盘的4K扇区尺寸4096和微软默认值不通导致的无法启动。联想我的电脑刚升级了三星的980nvme m.2固态硬盘,还真是。

解决办法

修改注册表强制指定4K扇区大小:

打开注册表编辑器 (regedit.exe).

找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.

增加一个多字符串值:ForcedPhysicalSectorSizeInBytes.

值设为: * 4096 (不是 * 4095 这个微软建议值).

重启计算机,Localdb工作正常了。 Fix-sql-server-do-not-start

相关链接

https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/database-file-operations/troubleshoot-os-4kb-disk-sector-size

https://www.500599.xyz/posts/db/sql-server-can-not-start/

posted @ 2024-11-22 16:09  jopny  阅读(9)  评论(0编辑  收藏  举报