Objaw:
Podczas używania DBCC CHECKDB w REPAIR_ALLOW_DATA_LOSS parametr do naprawy uszkodzonej bazy danych .MDF, na przykład:
DBCC CHECKDB (xxxx, „REPAIR_ALLOW_DATA_LOSS”)
pojawia się następujący komunikat o błędzie:
Wyniki DBCC dla „xxxx”.
CHECKDB znalazł 0 błędów alokacji i 0 błędów spójności w bazie danych „xxxx”.
Msg 824, Level 24, State 2, Line 8
SQL Server wykryto logiczny błąd we / wy oparty na spójności: niepoprawna suma kontrolna (oczekiwana: 0xea8a9a2f; rzeczywista: 0x37adbff8). Wystąpiło podczas odczytu strony (1:28) w bazie danych o identyfikatorze 39 pod przesunięciem 0x00000000038000 w pliku „xxxx.mdf”. Dodatkowe wiadomości w SQL Server dziennik błędów lub dziennik zdarzeń systemowych może zawierać więcej szczegółów. Jest to poważny błąd, który zagraża integralności bazy danych i musi zostać natychmiast usunięty. Wykonaj pełną kontrolę spójności bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany wieloma czynnikami; aby uzyskać więcej informacji, zobacz SQL Server Książki online.
gdzie „xxxx.mdf” to nazwa naprawianego uszkodzonego pliku MDF. Chociaż CHECKDB mówi
CHECKDB znalazł 0 błędów alokacji i 0 błędów spójności w bazie danych „xxxx”.
To wciąż jest błąd spójności (Wiadomość 824) w bazie danych.
Zrzut ekranu z komunikatem o błędzie:
Jeśli uszkodzenie jest poważne, będą pojawiać się ciągłe komunikaty o błędach (Wiadomość 824), jak poniżej:
Msg 824, Level 24, State 6, Line 2 SQL Server wykryto logiczny błąd we / wy oparty na spójności: nieprawidłowa suma kontrolna (oczekiwana: 0x3d17dfef; rzeczywista: 0xd81748ef). Wystąpiło podczas odczytu strony (1: 0) w bazie danych o identyfikatorze 39 pod przesunięciem 0000000000000000 w pliku „xxxx.mdf”. Dodatkowe wiadomości w SQL Server dziennik błędów lub dziennik zdarzeń systemowych może zawierać więcej szczegółów. Jest to poważny błąd, który zagraża integralności bazy danych i musi zostać natychmiast usunięty. Wykonaj pełną kontrolę spójności bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany wieloma czynnikami; aby uzyskać więcej informacji, zobacz SQL Server Książki online.
Msg 824, Level 24, State 6, Line 4 SQL Server wykryto logiczny błąd we / wy oparty na spójności: nieprawidłowa suma kontrolna (oczekiwana: 0x3d17dfef; rzeczywista: 0xd81748ef). Wystąpiło podczas odczytu strony (1: 0) w bazie danych o identyfikatorze 39 pod przesunięciem 0000000000000000 w pliku „xxxx.mdf”. Dodatkowe wiadomości w SQL Server dziennik błędów lub dziennik zdarzeń systemowych może zawierać więcej szczegółów. Jest to poważny błąd, który zagraża integralności bazy danych i musi zostać natychmiast usunięty. Wykonaj pełną kontrolę spójności bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany wieloma czynnikami; aby uzyskać więcej informacji, zobacz SQL Server Książki online.
gdzie „xxxx.mdf” to nazwa naprawianego uszkodzonego pliku MDF.
Zrzut ekranu z komunikatem o błędzie:
Jeśli korupcja jest poważniejsza, możesz zobaczyć Wiadomość 7909 następujący sposób Wiadomość 824:
Wyniki DBCC dla „xxxx”.
CHECKDB znalazł 0 błędów alokacji i 0 błędów spójności w bazie danych „xxxx”.
Msg 824, Level 24, State 2, Line 8
SQL Server wykryto błąd we / wy oparty na spójności logicznej: nieprawidłowa suma kontrolna (oczekiwana: 0xcfcd2118; rzeczywista: 0x6fc599d6). Wystąpiło podczas odczytu strony (1: 1) w bazie danych o identyfikatorze 39 pod przesunięciem 0x00000000002000 w pliku „xxxx.mdf”. Dodatkowe wiadomości w SQL Server dziennik błędów lub dziennik zdarzeń systemowych może zawierać więcej szczegółów. Jest to poważny błąd, który zagraża integralności bazy danych i musi zostać natychmiast usunięty. Wykonaj pełną kontrolę spójności bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany wieloma czynnikami; aby uzyskać więcej informacji, zobacz SQL Server Książki online.
Msg 7909, Level 20, State 1, Line 8
Naprawa w trybie awaryjnym nie powiodła się. Musisz przywrócić dane z kopii zapasowej.
gdzie „xxxx” to nazwa bazy danych, a „xxxx.mdf” to fizyczna nazwa zbioru bazy danych.
Note Wiadomość 7909 to poważny błąd, który może wystąpić w wielu sytuacjach, gdy tylko SQL Server myślę, że bazy danych nie można odzyskać
Zrzut ekranu z komunikatem o błędzie:
Dokładne wyjaśnienie:
Dane w pliku MDF są przechowywane jako 8KB stron. Każda strona ma opcjonalne pole sumy kontrolnej.
Jeśli polecenie DBCC CHECKDB znajdzie wartości sumy kontrolnej na stronie nagłówkowej, stronie PFS i niektórych stronach danych są nieprawidłowe i nie może naprawić problemu, zgłosi ten błąd (Wiadomość 824). Jeśli uszkodzenie jest poważne, mogą występować ciągłe błędy (Wiadomość 824) lub inny błąd (Wiadomość 7909).
Możesz skorzystać z naszego produktu DataNumen SQL Recovery aby odzyskać dane z uszkodzonego pliku MDF i rozwiązać ten błąd.
Przykładowe pliki:
Przykładowe uszkodzone pliki MDF, które spowodują błąd (Pojedynczy błąd Msg 824):
SQL Server wersja | Uszkodzony plik MDF | Plik MDF naprawiony przez DataNumen SQL Recovery |
SQL Server 2014 | Błąd1_3.mdf | Błąd1_3_fixed.mdf |
Przykładowe uszkodzone pliki MDF, które spowodują błąd (Ciągłe błędy Msg 824):
SQL Server wersja | Uszkodzony plik MDF | Plik MDF naprawiony przez DataNumen SQL Recovery |
SQL Server 2014 | Błąd1_1.mdf | Błąd1_1_naprawiony.mdf |
Przykładowe uszkodzone pliki MDF, które spowodują błąd (Błąd Msg 824, a po nim błąd Msg 7909):
SQL Server wersja | Uszkodzony plik MDF | Plik MDF naprawiony przez DataNumen SQL Recovery |
SQL Server 2014 | Błąd1_2.mdf | Błąd1_2_fixed.mdf |