Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera rozwiązania dotyczące rozwiązywania problemów z błędami podczas instalacji lub uruchamiania wystąpienia programu SQL Server w systemie Windows. Ten artykuł jest prawidłowy dla wszystkich wydanych wersji programu SQL Server.
W tym artykule omówiono błędy związane z rozmiarem sektora dysku systemowego większym niż 4 KB. Podczas próby zainstalowania wystąpienia programu SQL Server na maszynie o rozmiarze sektora dysku systemowego większym niż 4 KB mogą wystąpić następujące scenariusze:
Dotyczy: wszystkie wersje programu SQL Server
Scenariusz 1. Przenoszenie pliku do woluminu o zgodnym rozmiarze sektora
Jeśli spróbujesz użyć rozmiaru sektora większego niż 4 KB, zostanie wyświetlony następujący komunikat o błędzie:
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.
Scenariusz 2: Nie można odnaleźć uchwytu uruchomienia silnika bazy danych
Podczas próby zainstalowania wystąpienia programu SQL Server na maszynie wirtualnej platformy Azure z systemem Windows instalacja kończy się niepowodzeniem i podczas próby uruchomienia aparatu podczas instalacji zostanie wyświetlony następujący komunikat o błędzie w dzienniku błędów programu SQL Server:
Nie można użyć pliku "...\master.mdf", ponieważ został on pierwotnie sformatowany z rozmiarem sektora 4096 i jest teraz na woluminie o rozmiarze sektora 8192. Przenieś plik do woluminu o rozmiarze sektora, który jest taki sam jak lub mniejszy niż rozmiar oryginalnego sektora.
Ponadto w pliku dziennika Summary.txt można zobaczyć następujące informacje w folderze instalacyjnym programu SQL Server:
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.
Aby uzyskać więcej informacji, zobacz Instalacja programu SQL Server kończy się niepowodzeniem z powodu błędu rozmiaru sektora na maszynie wirtualnej platformy Azure z systemem Windows Server 2022.
Scenariusz 3: Oczekiwanie na dojście odzyskiwania aparatu bazy danych nie powiodło się
Podczas instalowania dowolnej wersji programu SQL Server występują błędy podobne do następującego komunikatu dla składnika usług aparatu bazy danych programu SQL Server:
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.
Możesz też zobaczyć następujące błędy w dzienniku błędów programu SQL Server:
2025-02-26 20:01:16.79 spid14s Starting up database 'master'.
2025-02-26 20:01:16.80 spid14s Error: 5178, Severity: 16, State: 1.
2025-02-26 20:01:16.80 spid14s Cannot use file 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 8192. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.
Scenariusz 4: Wystąpiło 256 błędnie wyrównanych operacji we/wy dziennika, które wymagały powrotu do operacji synchronicznych.
Instalujesz dowolną wersję programu SQL Server na urządzeniu z systemem Windows 10. Następnie uaktualnisz system operacyjny na urządzeniu do systemu Windows 11. Podczas próby uruchomienia programu SQL Server na urządzeniu z systemem Windows 11 uruchomienie usługi kończy się niepowodzeniem. W dzienniku błędów programu SQL Server zauważysz następujące wpisy:
2021-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.
Scenariusz 5
Instalujesz dowolną wersję programu SQL Server na urządzeniu z systemem Windows 10. Następnie uaktualnisz system operacyjny na urządzeniu do systemu Windows 11. Podczas próby uruchomienia programu SQL Server na urządzeniu z systemem Windows 11 uruchomienie usługi kończy się niepowodzeniem. W dzienniku błędów programu SQL Server zauważysz następujące wpisy:
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
Scenariusz 6. Przeniesienie pliku do woluminu o rozmiarze sektora, który jest taki sam jak lub mniejszy niż rozmiar oryginalnego sektora
Instalacja bazy danych LocalDB na urządzeniu z systemem Windows 11 kończy się niepowodzeniem. W dzienniku błędów programu SQL Server zauważysz następujące wpisy:
2021-12-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.
W dzienniku zdarzeń aplikacji systemu Windows 11 zauważysz następujące wpisy:
Message : Windows API call WaitForMultipleObjects returned error code: 575. Windows system error message is: {Application Error}
The application was unable to start correctly (0x%lx). Click OK to close the application.
Reported at line: 3621.
Source : SQLLocalDB 11.0
Uwaga
Mogą wystąpić błędy wymienione w poprzednich scenariuszach dla wystąpienia programu SQL Server zainstalowanego ręcznie lub w wystąpieniu bazy danych LocalDB zainstalowanym przez aplikacje.
Przyczyna
Podczas uruchamiania usługi program SQL Server rozpoczyna proces odzyskiwania bazy danych, aby zapewnić spójność bazy danych. Część tego procesu odzyskiwania bazy danych obejmuje sprawdzanie spójności w bazowym systemie plików przed próbą otwarcia plików systemowych i plików bazy danych użytkownika.
Niektóre nowe urządzenia magazynujące i sterowniki urządzeń uwidaczniają rozmiar sektora dysku większy niż obsługiwany rozmiar sektora 4 KB.
W przypadku wystąpienia tego problemu program SQL Server nie może uruchomić się z powodu nieobsługiwanego systemu plików, ponieważ program SQL Server obecnie obsługuje rozmiary magazynu sektora o rozmiarze 512 bajtów i 4 KB.
Możesz potwierdzić, że wystąpi ten konkretny problem, uruchamiając polecenie :
fsutil fsinfo sectorinfo <volume pathname>
Aby na przykład przeanalizować wolumin E:, uruchom następujące polecenie:
fsutil fsinfo sectorinfo E:
Poszukaj wartości PhysicalBytesPerSectorForAtomicity
i PhysicalBytesPerSectorForPerformance
, zwróconych w bajtach, a jeśli są różne, zachowaj największą wartość, aby ustalić rozmiar sektora dysku. Wartość 4096 wskazuje rozmiar magazynu sektora o rozmiarze 4 KB.
Ponadto należy pamiętać o zasadach obsługi systemu Windows dla obsługi systemu plików i sektora magazynu. Aby uzyskać więcej informacji, zobacz zasady pomocy technicznej firmy Microsoft dotyczące dysków twardych z sektora 4 KB w systemie Windows .
Uwaga
Nie ma wydanej wersji programu SQL Server zgodnej z rozmiarami sektorów większymi niż 4 KB. Aby uzyskać więcej informacji, zobacz artykuł Granice wsparcia wielkości sektorów dysku twardego w programie SQL Server.
Rozwiązania
Obecnie klucz rejestru jest wymagany do pomyślnego
ForcedPhysicalSectorSizeInBytes
zainstalowania programu SQL Server podczas korzystania z nowoczesnych platform magazynowania, takich jak NVMe, które zapewniają rozmiar sektora większy niż 4 KB. Ten klucz rejestru systemu operacyjnego Windows wymusza emulowanie rozmiaru sektora jako 4 KB.Aby dodać
ForcedPhysicalSectorSizeInBytes
klucz rejestru, użyj Edytora rejestru lub uruchom polecenia tak jak opisano w Wierszu Polecenia lub programie PowerShell. W tym scenariuszu nie ma potrzeby dodawania flagi śledzenia 1800.Ważne
Ta sekcja zawiera kroki, które informują o sposobie modyfikowania rejestru systemu Windows. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonać poniższe kroki. Aby zapewnić dodatkową ochronę, utwórz kopię zapasową rejestru przed przystąpieniem do jego modyfikacji. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowej i przywracania rejestru, zobacz artykuł Jak utworzyć kopię zapasową i przywrócić rejestr w systemie Windows .
- Uruchom Edytor rejestru jako administrator.
- Przejdź do
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
. - Wybierz pozycję Edytuj>Nową>wartość wielociągową i nazwij ją
ForcedPhysicalSectorSizeInBytes
. - Kliknij prawym przyciskiem myszy nazwę, wybierz pozycję Modyfikuj i wpisz
* 4095
w polu Dane wartości . - Wybierz przycisk OK i zamknij Edytor rejestru.
Aby ta zmiana weszła w życie, należy ponownie uruchomić urządzenie po dodaniu klucza rejestru.
Jeśli nie dodasz klucza rejestru i masz wiele dysków w tym systemie, możesz określić inną lokalizację dla plików bazy danych po zakończeniu instalacji programu SQL Server. Upewnij się, że dysk odzwierciedla obsługiwany rozmiar sektora podczas wykonywania zapytań dotyczących
fsutil
poleceń. Program SQL Server obsługuje obecnie rozmiary magazynu sektora 512 bajtów i 4096 bajtów.
Ostrzeżenie
Jeśli pula magazynów została już utworzona z dyskami o rozmiarze sektora większym niż 4 KB do hostowania plików programu SQL Server, musisz najpierw usunąć pulę magazynów, zastosować jedną z metod rozwiązywania problemów wymienionych w tym artykule, a następnie ponownie skompilować pulę magazynów przed próbą zainstalowania programu SQL Server w puli magazynu lub pulach.
Więcej informacji
Zaktualizowano natywne sterowniki NVMe systemu Windows 11 w celu uwzględnienia rzeczywistego rozmiaru sektora zgłaszanego bezpośrednio przez urządzenia magazynujące NVMe. Zostało to zrobione zamiast polegać na informacjach emulowanych ze sterowników systemu plików.
Sterowniki systemu Windows 10 nie zgłaszają rozmiaru sektora źródłowego magazynu fizycznego.
Ulepszone sterowniki systemu Windows 11 ignorują emulację, z których korzystają typowe urządzenia magazynujące NVMe. Na przykład fsutil
wyświetla rozmiar sektora o rozmiarze 8 KB lub 16 KB, zamiast emulować wymagany rozmiar sektora 4 KB wymagany przez system Windows.
W poniższej tabeli przedstawiono porównanie rozmiarów sektorów zgłoszonych przez systemy operacyjne. W tym przykładzie przedstawiono różnice między systemami Windows 10 i Windows 11 przy użyciu tego samego urządzenia magazynowego. W przypadku wartości PhysicalBytesPerSectorForAtomicity
i PhysicalBytesPerSectorForPerformance
system Windows 10 wyświetla 4 KB, a system Windows 11 wyświetla 16 KB.
Przykładowe dane wyjściowe fsutil fsinfo sectorinfo <volume pathname>
Windows 10 | Windows 11 |
---|---|
LogicalBytesPerSector : 512 |
LogicalBytesPerSector : 512 |
PhysicalBytesPerSectorForAtomicity : 4096 |
PhysicalBytesPerSectorForAtomicity : 16384 |
PhysicalBytesPerSectorForPerformance : 4096 |
PhysicalBytesPerSectorForPerformance : 16384 |
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 |
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 |
Device Alignment : Aligned (0x000) |
Device Alignment : Aligned (0x000) |
Partition alignment on device : Aligned (0x000) |
Partition alignment on device : Aligned (0x000) |
No Seek Penalty |
No Seek Penalty |
Trim Supported |
Trim Supported |
Not DAX capable |
Not DAX capable |
Not Thinly-Provisioned |
Not Thinly-Provisioned |