Delen via


Sql Server-installatie mislukt met een sectorgroottefout op een virtuele Windows Server 2022 Azure-machine

Dit artikel helpt u bij het oplossen van een probleem dat optreedt wanneer u een SQL Server-exemplaar handmatig probeert te installeren op een virtuele Microsoft Azure-machine (VM) waarop Windows wordt uitgevoerd.

Van toepassing op: SQL Server, SQL Server op Azure VM - Windows

Symptomen

Wanneer u probeert een SQL Server-exemplaar te installeren op een virtuele Azure-machine (VM) waarop Windows wordt uitgevoerd, mislukt de installatie en ontvangt u het volgende foutbericht in het SQL Server-foutenlogboek wanneer de engine probeert te starten tijdens de installatie:

Kan het bestand ...\master.mdf niet gebruiken omdat het oorspronkelijk is opgemaakt met sectorgrootte 4096 en zich nu op een volume bevindt met sectorgrootte 8192. Verplaats het bestand naar een volume met een sectorgrootte die gelijk is aan of kleiner is dan de oorspronkelijke sectorgrootte.

Daarnaast ziet u de volgende informatie in het Summary.txt logboekbestand in de sql Server-installatiemap:

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.

Dit probleem kan optreden bij on-premises installaties, maar u zult het waarschijnlijker tegenkomen bij het installeren van SQL Server op een virtuele machine (VM) van Microsoft Azure.

Oorzaak

Dit probleem treedt op vanwege de sectorgrootteconfiguratie van de schijf op bepaalde virtuele Azure-machines. Sommige van de nieuwste Azure VM-generaties (zoals Da, Ea en Fav6) hebben een NVMe-opslaginterface en vereisen een installatiekopieën van het besturingssysteem die NVMe ondersteunen. Deze nieuwste Azure VM-generaties worden echter geïmplementeerd met een standaardsectorgrootte van 8 kB, die momenteel niet wordt ondersteund door SQL Server. SQL Server ondersteunt momenteel schijven met standaardeigen sectorgrootten van 512 bytes en 4 kB.

Opmerking

Non-Volatile Memory Express (NVMe) is een communicatieprotocol dat snellere en efficiëntere gegevensoverdracht tussen servers en opslagsystemen mogelijk maakt met behulp van NVM (Non-Volatile Memory). Met NVMe kunnen gegevens worden overgedragen op de hoogste doorvoer en met de snelste reactietijden.

Als een virtuele Azure-machine wordt geïmplementeerd met behulp van de sectorgrootte van 8 kB en u probeert SQL Server te installeren na de implementatie, kan de installatie mislukken.

Opmerking

Dit scenario treedt alleen op wanneer u SQL Server handmatig installeert op een Azure-VM, maar niet wanneer u een SQL Server-VM implementeert vanuit Azure Marketplace. De Azure Marketplace-installatiekopieën zijn vooraf geconfigureerd voor het gebruik van de sectorgrootte van 4 kB.

Oplossing

U kunt dit probleem oplossen door SQL Server opnieuw te installeren nadat u de Azure-VM hebt gedwongen de sectorgrootte van 4 kB te gebruiken.

Voer de volgende stappen uit om SQL Server op uw Azure-VM te installeren:

  1. Als u SQL Server al hebt geïnstalleerd, verwijdert u SQL Server. Ga anders naar de volgende stap.

  2. Voeg de registersleutel ForcedPhysicalSectorSizeInBytes toe.

  3. Controleer of de sectorgrootte 4 kB is door de volgende opdracht uit te voeren in een opdrachtprompt met verhoogde bevoegdheid:

    fsutil fsinfo sectorinfo <volume pathname>

  4. Start de Azure-VM opnieuw op.

  5. Installeer SQL Server opnieuw.

In de volgende schermopname ziet u de uitvoer van de fsutil fsinfo sectorinfo opdracht voor het E: station, met een sectorgrootte van 8 kB:

Schermopname van de uitvoer van de opdrachtprompt van 8 kB-sectorgrootte.

In de volgende schermopname ziet u de uitvoer van de fsutil fsinfo sectorinfo opdracht voor het E: station na het bijwerken van de registersleutel om de sectorgrootte van 4 kB te gebruiken:

Schermopname van de uitvoer van de opdrachtprompt van 4 kB-sectorgrootte.

De ForcedPhysicalSectorSizeInBytes registersleutel is een instelling op besturingssysteemniveau, wat betekent dat alle stations die momenteel zijn gekoppeld en die in de toekomst zijn gekoppeld, de sectorgrootte van 4 kB gebruiken, tenzij deze registersleutel wordt verwijderd.