Udostępnij za pośrednictwem


Błąd MSSQLSERVER 823

Dotyczy:SQL Server

Szczegóły

Atrybut Wartość
Nazwa produktu SQL Server
Identyfikator zdarzenia 823
Źródło zdarzenia MSSQLSERVER
Składnik SQLEngine
Nazwa symboliczna B_HARDERR
Tekst wiadomości System operacyjny zwrócił błąd %ls do programu SQL Server podczas %S_MSG na przesunięciu %#016I64x w pliku "%ls". Dodatkowe komunikaty w dzienniku błędów programu SQL Server i dzienniku zdarzeń systemu mogą zawierać więcej szczegółów. Jest to poważny stan błędu na poziomie systemu, który zagraża integralności bazy danych i musi zostać natychmiast poprawiony. Wykonaj pełne sprawdzanie spójności bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany wieloma czynnikami; Aby uzyskać więcej informacji, zobacz Sql Server Books Online.

Wyjaśnienie

Program SQL Server używa interfejsów API systemu Windows (na przykład ReadFile, WriteFile, ReadFileScatter, WriteFileGather) do wykonywania operacji we/wy plików. Po wykonaniu tych operacji we/wy program SQL Server sprawdza wszystkie warunki błędu skojarzone z tymi wywołaniami interfejsu API. Jeśli wywołania interfejsu API kończą się niepowodzeniem z powodu błędu systemu operacyjnego, program SQL Server zgłasza błąd 823.

Komunikat o błędzie 823 zawiera następujące informacje:

  • Plik bazy danych, względem którego wykonano operację we/wy.
  • Przesunięcie w pliku, w którym podjęto próbę wykonania operacji we/wy. Jest to fizyczne przesunięcie bajtu od początku pliku. Podzielenie tej liczby przez 8192 daje logiczny numer strony, na który ma wpływ błąd.
  • Niezależnie od tego, czy operacja we/wy jest żądaniem odczytu, czy zapisu.
  • Kod błędu systemu operacyjnego i opis błędu w nawiasach.

Błąd systemu operacyjnego: Wywołanie interfejsu API odczytu lub zapisu systemu Windows nie powiodło się, a program SQL Server napotka błąd systemu operacyjnego związany z wywołaniem interfejsu API systemu Windows. Poniższy komunikat jest przykładem błędu 823:

Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

W bazie danych skojarzonej z plikiem w komunikacie o błędzie mogą wystąpić błędy z instrukcji DBCC CHECKDB. Po wyświetleniu błędu 823 można uruchomić instrukcję DBCC CHECKDB. Jeśli instrukcja DBCC CHECKDB nie zgłasza żadnych błędów, prawdopodobnie występuje sporadyczne problemy z systemem lub problem z dyskiem.

Dodatkowe informacje diagnostyczne dotyczące błędów 823 mogą być zapisywane w pliku dziennika błędów programu SQL Server podczas korzystania z flagi śledzenia 818. Aby uzyskać więcej informacji, zobacz diagnostyka programu SQL Server wykrywa nieraportowane problemy we/wy z powodu nieaktualnych odczytów lub utraconych zapisów.

Przyczyna

Komunikat o błędzie 823 zwykle wskazuje, że występuje problem z bazowym systemem magazynu lub sprzętem lub sterownikiem, który znajduje się w ścieżce żądania we/wy. Ten błąd może wystąpić w przypadku wystąpienia niespójności w systemie plików lub uszkodzenia pliku bazy danych. W przypadku odczytu pliku program SQL Server ponowił żądanie odczytu cztery razy przed zwróceniem wartości 823. Jeśli operacja ponawiania zakończy się pomyślnie, zapytanie nie zakończy się niepowodzeniem, ale komunikat MSSQLSERVER_825 zostanie zapisany w dzienniku BŁĘDÓW i dzienniku zdarzeń.

Akcja użytkownika

  • Przejrzyj tabelę suspect_pages w pliku msdb dla innych stron, na których występuje ten problem (w tej samej bazie danych lub różnych bazach danych).

  • Sprawdź spójność baz danych znajdujących się na tym samym woluminie (co zgłoszone w komunikacie 823) przy użyciu polecenia DBCC CHECKDB. Jeśli znajdziesz niespójności z polecenia DBCC CHECKDB, skorzystaj ze wskazówek z tematu Jak rozwiązywać problemy z błędami spójności bazy danych zgłoszonymi przez polecenie DBCC CHECKB.

  • Przejrzyj dzienniki zdarzeń systemu Windows, aby uzyskać informacje o błędach lub komunikatach zgłoszonych z systemu operacyjnego, urządzenia magazynującego lub sterownika urządzenia. Jeśli w jakiś sposób są one związane z tym błędem, najpierw rozwiąż te błędy. Na przykład, oprócz komunikatu 823, można również zauważyć zdarzenie takie jak "Sterownik wykrył błąd kontrolera w \Device\Harddisk4\DR4" zgłoszony przez źródło dysku w dzienniku zdarzeń. W takim przypadku należy ustalić, czy ten plik znajduje się na tym urządzeniu, a następnie najpierw naprawić te błędy dysku.

  • Użyj narzędzia SQLIOSim, aby zasymulować działanie programu SQL Server w narzędziu podsystemu dysku, aby dowiedzieć się, czy te błędy 823 można odtworzyć poza zwykłymi żądaniami we/wy programu SQL Server. Narzędzie SQLIOSim jest dostarczane z programem SQL Server 2008 i nowszymi wersjami, aby nie było potrzeby oddzielnego pobierania. Zazwyczaj można go znaleźć w C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn folderze.

  • Skontaktuj się z dostawcą sprzętu lub producentem urządzenia, aby zapewnić

    • Urządzenia sprzętowe i konfiguracja są zgodne z wymaganiami we/wy programu SQL Server
    • Sterowniki urządzeń i inne składniki oprogramowania pomocniczego wszystkich urządzeń w ścieżce we/wy są aktualne
  • Jeśli dostawca sprzętu lub producent urządzenia dostarczył Ci jakiekolwiek narzędzia diagnostyczne, użyj ich do oceny kondycji systemu we/wy

  • Oceń, czy istnieją sterowniki filtrów , które istnieją w ścieżce tych żądań we/wy, które napotykają problemy.

    • Sprawdź, czy istnieją jakiekolwiek aktualizacje tych sterowników filtrów
    • Czy te sterowniki filtrów można usunąć lub wyłączyć, aby sprawdzić, czy problem, który powoduje wystąpienie błędu 823, zniknie?