最近安裝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