Test-SectorSizeForMssql

EulandaXtools — Funktionsreferenz

Test-SectorSizeForMssql

ÜBERSICHT

Prüft die Volume-Sektorgrößen auf SQL-Server-Kompatibilität und kann optional NVMe-4K-Emulation per Registry aktivieren/deaktivieren (mit optionalem Neustart).

SYNTAX

Test-SectorSizeForMssql [[-DriveLetter] <string[]>] -Enable4kEmulation -Disable4kEmulation
    [-Restart] [-ForceRestart] [-More] [<CommonParameters>]

BESCHREIBUNG

SQL Server hat Probleme, wenn ein Volume physische Sektorgrößen (Atomicity/Performance) größer als 4096 Bytes meldet. Diese Funktion:

Hinweis:

PARAMETER

-Enable4kEmulation

Type: switch
Mandatory: True

Aktiviert die NVMe-4K-Emulation, indem der MultiString-Registry-Wert HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device\ForcedPhysicalSectorSizeInBytes um den Eintrag "* 4095" ergänzt bzw. angelegt wird. Ein Neustart ist erforderlich, damit Windows die Sektorgrößen entsprechend meldet.

-Disable4kEmulation

Type: switch
Mandatory: True

Deaktiviert die NVMe-4K-Emulation, indem der Eintrag "* 4095" aus "ForcedPhysicalSectorSizeInBytes" entfernt wird. Wenn danach keine Einträge mehr übrig sind, wird der Registry-Wert entfernt. Ein Neustart ist erforderlich, damit Windows wieder die nativen Werte meldet.

-Restart

Type: switch

Startet den Rechner nach einer erfolgreichen Enable/Disable-Änderung automatisch neu. Es wird nur neu gestartet, wenn tatsächlich eine Änderung vorgenommen wurde.

-ForceRestart

Type: switch

Erzwingt den Neustart, wenn zusammen mit -Restart verwendet.

-DriveLetter

Type: string[]

Optional: Einschränkung auf bestimmte Laufwerksbuchstaben (z.B. C, D). Standard: alle Volumes mit DriveLetter.

AUSGABEN

System.Management.Automation.PSCustomObject

Gibt Objekte vom Typ "Nvme4kEmulation" (Status der Registry-Emulation) und "VolumeSectorInfo" (Sektorinfos pro Volume) zurück.

BEISPIELE

# Analyse aller Volumes (mit Laufwerksbuchstaben)
Test-SectorSizeForMssql
# Nur Volumes anzeigen, die sektorgrößenseitig nicht SQL-kompatibel sind
Test-SectorSizeForMssql |
  Where-Object { $_.ObjectType -eq 'VolumeSectorInfo' -and ($false -eq $_.IsSqlSectorCompatible) }
# NVMe-4K-Emulation aktivieren, Analyse anzeigen, danach Neustart (falls Änderung erfolgte)
Test-SectorSizeForMssql -Enable4kEmulation -Restart
# NVMe-4K-Emulation deaktivieren, Analyse anzeigen, danach Neustart erzwingen (falls Änderung erfolgte)
Test-SectorSizeForMssql -Disable4kEmulation -Restart -ForceRestart
# Nur C: und D: prüfen
Test-SectorSizeForMssql -DriveLetter C, D