Microsoft SQL Server 4 KB'tan büyük sistem diski sektörü boyutuyla ilgili hataları giderin
Windows 10/11 ve Windows Server 2022'de SQL Server kurulumu veya başlatılması sırasında oluşan hataların giderilmesine yönelik çözümler sunulmaktadır. Bu makale, SQL Server'ın yayımlanan tüm sürümleri için geçerlidir.
MS SQL Server kurulumu veya kurulum sonrasında yaşanan bu hata genellikle NVME diske kurulu sistemler üzerinde yaşanmaktadır.
Bulgular
Senaryo #1: SQL Server'ın herhangi bir sürümünü Windows 11 cihazına yüklüyorsunuz. Daha sonra SQL Server'ın Database Engine Services bileşeni için aşağıdaki mesaja benzer hatalar görürsünüz:
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: 0x851A001A Error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Senaryo #2: SQL Server'ın herhangi bir sürümünü Windows 10 cihazına yüklüyorsunuz. Daha sonra cihazdaki işletim sistemini Windows 11'e yükseltirsiniz. Windows 11 cihazında SQL Server'ı başlatmaya çalıştığınızda hizmet başlatılamaz ve SQL Server hata günlüğünde aşağıdakine benzer girişler görürsünüz:
2024-11-05 23:42:47.14 spid9s 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\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf.
Senaryo #3: SQL Server'ın herhangi bir sürümünü Windows 10 cihazına yüklüyorsunuz. Daha sonra cihazdaki işletim sistemini Windows 11'e yükseltirsiniz. Windows 11 cihazında SQL Server'ı başlatmaya çalıştığınızda hizmet başlatılamaz. SQL Server hata günlüğünde aşağıdakine benzer girişler görürsünüz:
Faulting application name: sqlservr.exe, version: 2019.150.2000.5, time stamp: 0x5d8a9215 Faulting module name: ntdll.dll, version: 10.0.22000.120, time stamp: 0x50702a8c Exception code: 0xc0000005 Fault offset: 0x00000000000357ae Faulting process id: 0x1124 Faulting application start time: 0x01d7bf67449d262c Faulting application path: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Senaryo #4: LocalDB’yi Windows 11 yüklü bir cihaza kuruyorsunuz. Kurulum başarısız olur ve SQL Server hata günlüğünde aşağıdakine benzer girişler görürsünüz:
2024-05-15 23:25:04.28 spid5s Cannot use file 'C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\TestInstance\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 16384. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.
Senaryo #5: 4 KB'tan büyük sektör boyutunu kullanmaya çalışırsanız aşağıdaki hata mesajını görürsünüz:
Error: 5179, Severity: 16, State: 1. Cannot use file 'data file path', because it is on a volume with sector size 8192. SQL Server supports a maximum sector size of 4096 bytes. Move the file to a volume with a compatible sector size.
Neden Kaynaklanıyor?
Hizmetin başlatılması sırasında SQL Server, veritabanı tutarlılığını sağlamak için veritabanı kurtarma işlemini başlatır. Bu veritabanı kurtarma işleminin bir kısmı, sistem ve kullanıcı veritabanı dosyalarını açmayı denemeden önce temel dosya sistemi üzerinde tutarlılık kontrollerini içerir.
Windows 11 çalıştıran sistemlerde, bazı yeni depolama aygıtları ve aygıt sürücüleri, desteklenen 4 KB kesim boyutundan daha büyük bir disk kesimi boyutu ortaya çıkarır.
Bu durumda, SQL Server şu anda 512 bayt ve 4 KB sektör depolama boyutlarını desteklediğinden, SQL Server desteklenmeyen dosya sistemi nedeniyle başlatılamayacaktır.
Komutu çalıştırarak bu özel sorunla karşılaştığınızı doğrulayabilirsiniz:
fsutil fsinfo sectorinfo
Örneğin, C: birimini analiz etmek için aşağıdaki komutu çalıştırın:
fsutil fsinfo sectorinfo C:
PhysicalBytesPerSectorForAtomicityBayt cinsinden döndürülen ve değerlerini arayın PhysicalBytesPerSectorForPerformanceve eğer bunlar farklıysa, disk sektörü boyutunu belirlemek için en büyüğünü koruyun. 4096 değeri, 4 KB'lik sektör depolama boyutunu gösterir.
Not
SQL Server'ın 4 KB'tan büyük sektör boyutlarıyla uyumlu yayınlanmış bir sürümü yok.
Nasıl Çözülür?
-
Regedit (Kayıt Düzenleyici)
- Regedit ile aşağıdaki konumuna gidin.
Düz Metin
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
- Düzen menüsünde Yeni'nin üzerine gelin ve ardından Çoklu Dize değeri'ni seçin. Adını ForcedPhysicalSectorSizeInBytes olarak ayarlayın.
- Yeni değeri değiştirin ve yazın * 4095. Tamam'ı seçin ve Kayıt Defteri düzenleyicisini kapatın.
- Regedit ile aşağıdaki konumuna gidin.
-
CMD Komut İstemi
- Arama alanına CMD yazarak Komut İstemini bulun ve konsolu Yönetici olarak çalıştırın.
-
CMD Konsol
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
- Verilen komutu girerek Enter ile onaylayın
-
Windows PowerShell
- Arama alanına PowerShell yazarak PowerShell İstemini bulun ve konsolu Yönetici olarak çalıştırın.
-
PowerShell Konsol
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"
- Verilen komutu girerek Enter ile onaylayın