Freigeben über


Sql Server-Installation schlägt mit einem Fehler der Sektorgröße auf einem virtuellen Windows Server 2022-Azure-Computer fehl.

Dieser Artikel hilft Ihnen, ein Problem zu beheben, das auftritt, wenn Sie versuchen, eine SQL Server-Instanz auf einem virtuellen Microsoft Azure-Computer (VM) unter Windows manuell zu installieren.

Gilt für: SQL Server, SQL Server auf Azure VM – Windows

Symptome

Wenn Sie versuchen, eine SQL Server-Instanz auf einem virtuellen Azure-Computer (VM) unter Windows zu installieren, schlägt die Installation fehl, und Sie erhalten die folgende Fehlermeldung im SQL Server-Fehlerprotokoll, wenn das Modul versucht, während der Installation zu starten:

Die Datei "...\master.mdf" kann nicht verwendet werden, da sie ursprünglich mit der Sektorgröße 4096 formatiert wurde und sich jetzt auf einem Volumen mit der Sektorgröße 8192 befindet. Verschieben Sie die Datei auf ein Volume mit einer Sektorgröße, die maximal so groß wie die ursprüngliche Sektorgröße ist.

Darüber hinaus werden die folgenden Informationen in der Summary.txt Protokolldatei im SQL Server-Setupordner angezeigt:

Detailed results:
  Feature:                       Database Engine Services
  Status:                        Failed
  Reason for failure:            An error occurred during the setup process of the feature.
  Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
  Component name:                SQL Server Database Engine Services Instance Features
  Component error code:          0x851A0019
  Error description:             Could not find the Database Engine startup handle.

Dieses Problem kann bei lokalen Installationen auftreten, sie werden jedoch wahrscheinlicher beim Installieren von SQL Server auf dem virtuellen Computer (VM) von Microsoft Azure auftreten.

Ursache

Dieses Problem tritt aufgrund der Sektorgrößenkonfiguration des Datenträgers auf bestimmten virtuellen Azure-Computern auf. Einige der neuesten Azure-VM-Generationen (z. B. Da, Ea und Fav6) verfügen über eine NUR-NVMe-Speicherschnittstelle und erfordern ein Betriebssystemimage, das NVMe unterstützt. Diese neuesten Azure-VM-Generationen stellen jedoch eine Standardsektorgröße von 8 KB bereit, die derzeit nicht von SQL Server unterstützt wird. SQL Server unterstützt derzeit Datenträger mit standardmäßigen systemeigenen Sektorgrößen von 512 Byte und 4 KB.

Hinweis

Non-Volatile Memory Express (NVMe) ist ein Kommunikationsprotokoll, das eine schnellere und effizientere Datenübertragung zwischen Servern und Speichersystemen mit nicht-volatilem Speicher (NVM) ermöglicht. Mit NVMe können Daten mit dem höchsten Durchsatz und mit den schnellsten Antwortzeiten übertragen werden.

Wenn ein virtueller Azure-Computer mithilfe der Größe des 8-KB-Sektors bereitgestellt wird und Sie versuchen, SQL Server nach der Bereitstellung zu installieren, schlägt die Installation möglicherweise fehl.

Hinweis

Dieses Szenario tritt nur auf, wenn Sie SQL Server manuell auf einer Azure-VM installieren, aber nicht, wenn Sie eine SQL Server-VM aus Azure Marketplace bereitstellen. Die Azure Marketplace-Images sind vorkonfiguriert, um die Größe des 4-KB-Sektors zu verwenden.

Lösung

Um dieses Problem zu beheben, installieren Sie SQL Server neu, nachdem Sie die Azure-VM gezwungen haben, die Größe des 4-KB-Sektors zu verwenden.

Führen Sie die folgenden Schritte aus, um SQL Server erfolgreich auf Ihrem virtuellen Azure-Computer zu installieren:

  1. Wenn Sie SQL Server bereits installiert haben, deinstallieren Sie SQL Server. Fahren Sie andernfalls mit dem nächsten Schritt fort.

  2. Fügen Sie den Registrierungsschlüssel "ForcedPhysicalSectorSizeInBytes " hinzu.

  3. Überprüfen Sie, ob die Sektorgröße 4 KB beträgt, indem Sie den folgenden Befehl an einer Eingabeaufforderung mit erhöhten Rechten ausführen:

    fsutil fsinfo sectorinfo <volume pathname>

  4. Starten Sie den virtuellen Azure-Computer neu.

  5. Installieren Sie SQL Server erneut.

Der folgende Screenshot zeigt die Ausgabe des fsutil fsinfo sectorinfo Befehls für das E: Laufwerk mit einer Größe von 8 KB:

Screenshot der Eingabeaufforderungsausgabe der Größe des 8-KB-Sektors.

Der folgende Screenshot zeigt die Ausgabe des fsutil fsinfo sectorinfo Befehls für das E: Laufwerk nach dem Aktualisieren des Registrierungsschlüssels, um die Größe des 4-KB-Sektors zu verwenden:

Screenshot der Eingabeaufforderungsausgabe der Größe des 4-KB-Sektors.

Der ForcedPhysicalSectorSizeInBytes Registrierungsschlüssel ist eine Einstellung auf Betriebssystemebene, was bedeutet, dass alle derzeit angefügten Laufwerke und die in Zukunft angefügten Laufwerke die Größe des 4-KB-Sektors verwenden, es sei denn, dieser Registrierungsschlüssel wird entfernt.