Rozwiązywanie problemów błąd 3313, 3314, 3414 lub 3456 (SQL Server)

Błąd podczas operacji ponowne wykonanie, cofnąć lub odzyskiwanie na SQL Server bazy danych umieszcza bazy danych do podejrzanych Państwo.Błędy takie obejmują 3313 (ponowne wykonanie błąd logowania), 3314 (cofnąć błąd logowania), 3414 (błąd odzyskiwanie, który uniemożliwia ponowne uruchomienie bazy danych), błąd i 3456 (błąd na zarejestrowanej transakcji ponownie).

Wyjaśnienie

Błąd ponowne wykonanie, cofnąć lub odzyskiwanie umieszcza bazę danych w stanie podejrzanych, ponieważ podstawowa grupa plików i ewentualnie inne aplikacjami są podejrzane i może być uszkodzony.Baza danych jest niedostępny, a akcja użytkownika jest wymagana do rozwiązania problemu.

Ostrzeżenie

Jeśli ten błąd występuje na tempdb, SQL Server przebiega wystąpienie niedziałający.

Akcja użytkownika

Błąd ponowne wykonanie, cofnąć lub odzyskiwanie może być spowodowane przez warunku przejściowego lub stałe błąd występujący, co czas próby uruchomienia bazy danych.

Informacji dotyczących przyczyny danego wystąpienia błędu 3313, 3314, 3414 lub 3456 zbadać poprzedni błąd wskazujący określony błąd w dzienniku zdarzeń systemu Windows.Akcje odpowiedniego użytkownika zależą od tego, czy informacje w dzienniku zdarzeń systemu Windows wskazuje, że SQL Server błąd został spowodowany warunku przejściowego lub stałe awarii.

Ostrzeżenie

When any of these error conditions is encountered, SQL Server typically generates three files in the SQL Server LOG folder.SQLDumpnnnnpliku txt zawiera zaawansowane informacje diagnostyczne odnoszące się do awarii, w tym szczegóły dotyczące transakcji i strona napotkał problem.Te informacje są zazwyczaj używane przez zespół pomocy technicznej do analizowania przyczyna niepowodzenia.

Dla warunku przejściowego:

  1. Attempt to bring the database online by executing the following ALTER DATABASE Transact-SQL statement:

    ALTER DATABASE <database name> SET ONLINE;
    
  2. Aby ustalić, czy odzyskiwanie zostało zakończone pomyślnie i bazy danych pochodzi online, spójrz na Dziennik błędów programu SQL Server i sys.databases wykazu widoku.

  3. If the database is online, execute the DBCC CHECKDB Transact-SQL statement to verify whether the database is consistent.

Dla stałych awarii:

Dziennik błędów programu SQL Server dla błędu, którego dotyczy problem (3313, 3314, 3414 lub 3356) i przeglądanie wiadomości, które poprzedzają do ustalenia, czy można je poprawić ręcznie.Jeśli można poprawić wcześniejszych błędów, należy wykonać jedną z następujących procedur:

  • Przywracanie, a następnie sprawdź bazy danych (procedura zaleca) w następujący sposób:

    1. Próba podjęcia kopia zapasowa końcowego fragmentu dziennika.

    2. Przywróć bazę danych z kopia zapasowa bazy danych pełnego opcjonalnie następuje kopia zapasowa bazy danych różnicowych za pomocą RESTORE …Z NORECOVERY Transact-SQL instrukcja.

    3. Jeśli baza danych używa pełnych model odzyskiwanie, zastosować wszystkie zapasowe dziennika transakcji po Przywracanie pełnej lub różnicowej, zapasowej do punktu awarii, za pomocą dziennika PRZYWRÓCIĆ … Z NORECOVERY.

    4. Po przywróceniu bazy danych możliwie najbliżej punktu awarii, odzyskać bazy danych przy użyciu PRZYWRACANIA bazy danych <nazwa_bazy_danych> Z odzysku.

    5. After the database comes online, run the DBCC CHECKDB Transact-SQL statement to verify whether the database is consistent.

  • Spróbuj przenieść bazę danych w trybie online przy użyciu kroków opisanych dla błędu przejściowego, wcześniej w tej sekcji.

  • Użyć trybu awaryjnego, w następujący sposób:

    1. Transition the database into the EMERGENCY state by executing the following ALTER DATABASE Transact-SQL statement:

      ALTER DATABASE <database_name> SET EMERGENCY; 
      
    2. Przejrzyj dane wyjściowe z instrukcja ALTER DATABASE i Dziennik błędów programu SQL Server.

    3. Bada stan bazy danych w sys.databases wykazu widoku.

    4. Sprawdzać zgodność przeciwko bazy danych za pomocą dbcc checkdb instrukcja zrozumienie charakteru i fragment szkód.

    5. Po dokonaniu oceny danych wyjściowych z DBCC CHECKDB, można wykonać DBCC CHECKDB z opcją REPAIR_ALLOW_DATA_LOSS.

      PrzestrogaPrzestroga

      Przed użyciem opcji, należy uważnie przejrzeć informacje o rozwiązywaniu błędów w bazie danych trybu awaryjnego w DBCC CHECKDB (Transact-SQL) tematu SQL Server Books Online.

Ostrzeżenie

Aby dowiedzieć się, jak reagowanie na problemy ze sprzętem, które dotyczą błąd 3313, 3314, 3414 lub 3356, zobacz MSSQLSERVER_824.

Kroki dla uniknięcia tego błędu

Aby uniknąć takiej sytuacji ponownie, wykonaj następujące czynności:

  1. Przegląd SQL Server Dziennik błędów i dzienniki zdarzeń systemu Windows system problemów szeroki które mogą przyczynić się do tego błędu.

  2. Do wykluczenia znane problemy w produkcie, które mogą prowadzić do tego warunku, należy zastosować najnowszą aktualizację zbiorczą dla danej wersja programu SQL Server.