Nelze nainstalovat MS SQL Server - velikost sektoru

Jedním z problémů při instalaci MS SQL Serveru může být to, že instalace proběhne bez chyb, ale proces a služba jsou zastavené a nelze je spustit.

Vyskytuje se u nových notebooků (Lenovo, Dell, HP…), které používají technologie jako NVMe SSD, Intel VMD, Intel RST / Raid režim případně jiné power management režimy disků. Databázové systémy pracují s velikostí sektoru 4kB, tyto ovladače reportují blok 64kB, s čímž si MS SQL Server neporadí. Na serverech se tento problém nevyskytuje.

Více informací přímo na stránkách Microsoftu:

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

1) Ověření, zda instalace proběhne bez problémů

Spustit Příkazový řádek (nebo PowerShell) jako Správce a spustit příkaz:

fsutil fsinfo sectorinfo C:

Pokud se vypíše:

LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 4096
PhysicalBytesPerSectorForPerformance : 4096
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096

MS SQL Server půjde nainstalovat.

Jestliže se zobrazí:

PhysicalBytesPerSectorForPerformance : 65536

MS SQL Server nepůjde nainstalovat.

Ukázky obrazovek – vlevo je „nesprávná“ velikost sektoru, vpravo je sektor se správnou velikostí

2) Řešení

Spustit Příkazový řádek (Windows PowerShell) jako Správce a spustit:

reg add HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device /v ForcedPhysicalSectorSizeInBytes /t REG_MULTI_SZ /d „* 4095“ /f

Restartovat počítač a pro kontrolu znovu spustit Příkazový řádek jako správce a spustit:

fsutil fsinfo sectorinfo C:

Musí se zobrazit:

PhysicalBytesPerSectorForPerformance : 4096

Pokud je hodnota správně MS SQL Server se nainstaluje bez dalších komplikací. Jestliže se zobrazí jiná hodnota, MS SQL Server nepůjde nainstalovat a je potřeba hledat jiné řešení.

3) Další možné řešení

Problémy s velikostí clusteru má instalace v režimu Mixed Mode. Pokud se nainstaluje server pouze v režimu Windows Authentication a následně v Management Studiu nastaví přihlašování jménem a heslem, vše by mělo být v pořádku. Toto řešení jsme doposud v praxi neověřili.

Poškozené nebo chybějící OLE DB

Zástupce programu na ploše je blokovaný, nespustí program

V případě, že aplikace lze spustit za složky a nelze spustit pomocí zástupce na ploše, spusťte PowerShell jako správce a postupně proveďte následující kroky. Příkazy jsou připravené pro případ, kdy je SPZ umístěná v C:/SPZ. Pokud je cesta jiná, je potřeba příkazy upravit (a vždy vybrat správný příkaz podle verze SPZ – standardní nebo ONI).

Vložte a spusťte příkaz:
Get-Content „C:\SPZ\SPZ2026.exe“ -Stream Zone.Identifier
Get-Content „C:\SPZ\SPZ2026ONI.exe“ -Stream Zone.Identifier

Výsledek by měl být:

[ZoneTransfer]
ZoneId=3
(případně 
ZoneId=4)

Následně vložte a spusťte příkaz:
Remove-Item „C:\SPZ\SPZ2026.exe“ -Stream Zone.Identifier
Remove-Item „C:\SPZ\SPZ2026ONI.exe“ -Stream Zone.Identifier

Pro kontrolu spusťte znovu:
Get-Item „C:\SPZ\SPZ2026.exe“ -Stream *
Get-Item „C:\SPZ\SPZ2026ONI.exe“ -Stream *

Výsledek by měl být pouze:
::$DATA

 Následně by měl jít program spustit přes zástupce na ploše.