Problem

Symptome
Die Installation läuft durch, aber der SQL-Server-Dienst startet nicht. Im Errorlog findet sich ein Hinweis auf "misaligned":

C:\Program Files\Microsoft SQL Server\MSSQL12.VVWSOFTWARE\MSSQL\Log\ERRORLOG

"There have been 256 misaligned log IOs which required falling back to synchronous IO. The current IO is on file C:\Program Files\Microsoft SQL Server\MSSQL12.VVWSOFTWARE\MSSQL\Template Data\master.mdf"

 

Problematik

SQL-Server kann nur auf Sektorgrößen bis 4096 installiert werden. Einige (wenige) Windows 11-Versionen stellen auf größere Sektorgrößen um. Geprüft werden kann dies per Kommandozeile: CMD (als Administrator) mit dem Befehl "fsutil fsinfo sectorinfo C:"

Normal:
Logische Bytes pro Sektor: 512
Physische Bytes pro Sektor für Unteilbarkeit:
4096
Physische Bytes pro Sektor für Leistung:
4096
Effekt. phys. Bytes/Sektor für Unteilbark. in Dateisystem: 4096

Zu groß:
Logische Bytes pro Sektor: 512
Physische Bytes pro Sektor für Unteilbarkeit: 
16384
Physische Bytes pro Sektor für Leistung: 
16384
Effekt. phys. Bytes/Sektor für Unteilbark. in Dateisystem: 4096

Lösung

https://learn.microsoft.com/de-de/troubleshoot/sql/admin/troubleshoot-os-4kb-disk-sector-size
 
Lösung 1:
Den SQL-Server auf einer zweiten Festplatte installieren (sofern vorhanden).
 
Lösung 2:
 
per Registry:
Öffnen Sie die Registry (regedit.exe) und navigieren Sie zu:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
 
Klicken Sie im Menü "Bearbeiten\Neu\Wert der mehrteiligen Zeichenfolge". Nennen Sie den Wert ForcedPhysicalSectorSizeInBytes und geben Sie als Wert "* 4095" ein.
 
per Powershell:
Starten Sie die powershell als Administrator und führen Sie folgende Anweisung aus.
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name   "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"
 
Starten Sie den Rechner neu (ggfs. auch mehrmals!) und prüfen Sie mit "" die Sektorengröße.
 
Deinstallieren und Installieren Sie den SQL-Server neu. Deinstallieren über "Programme hinzufügen oder entfernen".
 
Lösung 3:
 
Legen Sie eine virtuelle zweite Festplatte an (z.B. ein Laufwerk E:) und den SQL-Server dort installieren.
 
https://www.top-password.com/blog/how-to-create-a-virtual-hard-drive-in-windows/
 
Virtuelle Festplatten müssen nach einem Neustart neu eingebunden werden. Alternativ kann dies per Aufgabenplanung erfolgen mit zwei Skriptdateien:
 
automount.bat
@echo off
diskpart /s "C:\Virtuelle Festplatte\mounten.txt"
 
mounten.txt
select vdisk file="C:\Virtuelle Festplatte\Virtuell_E.vhdx"
attach vdisk
 
In der Aufgabenplanung eine Aufgabe anlegen mit
Programm starten: "C:\Virtuelle Festplatte\automount.bat"
Ausführen als "SYSTEM"
Trigger: "Beim Start"
Haken entfernen bei "Aufgabe nur starten, falls der Computer im Netzbetrieb ausgeführt wird."
 
In den Diensten den SQL-Server-Dienst auf "automatisch (verzögerter Start)" umstellen, damit der SQL-Server gestartet wird, nachdem die virtuelle Festplatte eingehanden ist.