Odstraňování potíží s chybovou 3414 a obnovení došlo k chybě databáze systému SQL Server

Platí pro: SQL Server 2014

Příznaky


Při obnovení databáze se nezdaří, následující chybě je zapsána ERRORLOG nebo v protokolu událostí aplikace systému Windows s ID události = 3414:

Chyba: 3414, závažnosti: 21, stát: 1. během obnovení došlo k chybě zabrání restartování databáze 'mydb"(databáze ID 13). Diagnostikovat chyby obnovení a je opravit nebo obnovit ze známé platné zálohy. Pokud chyby nejsou opraveny nebo očekávání, obraťte se na technickou podporu)

Důvod selhání obnovení je obvykle k chybě, která předchází 3414 chyby v ERRORLOG nebo v protokolu událostí.

Pokud databáze se nezdaří obnovení s touto chybou, stav databáze nastaven na PODEZŘELÉ. Zobrazí se tento stav v SQL Server Management Studio (vedle ikony databáze) a pokud se podíváte na sys.databases.state_desc sloupec. Jakýkoli pokus o použití databáze v tomto stavu má za následek následující chybě:

Msg 926, úroveň 14 stavu 1, řádek 1Database mydb nelze otevřít. Byl označen PODEZŘELÝ po obnovení. Viz errorlog serveru SQL Server Další informace

Příčina


Příčinou selhání obnovení naleznete v předchozí chyby v ERRORLOG, kde má stejnou hodnotu < n > spid v řádku v souboru protokolu. Například následující je obnovení selhání kvůli chybě kontrolního součtu při pokusu o čtení protokolu blok posunout vpřed transakce:

17:33:13.00 2010-03-31 spid15s Chyba: 824, závažnosti: 24, stav: 4.2010-03-31 17:33:13.00 spid15s SQL Server zjistil logické vstupně-výstupní chybě konzistence systémem: (nesprávný kontrolní součet). K němu došlo při čtení stránky (0: -1) v databázi ID 13 na posunu 0x0000000000b800 v souboru "C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\mydb_log. LDF ".  Další zprávy do serveru SQL Server chybě protokolu nebo systému protokolu událostí může poskytnout více podrobností. To je vážné chybovou podmínku, která ohrožuje integritu databáze a musí být opraveny okamžitě. Proveďte kontrolu konzistence celé databáze (DBCC CHECKDB). Tato chyba může být způsobeno mnoha faktory; Další informace naleznete v tématu SQL Server Books Online.2010-03-31 17:33:13.16 spid15s Chyba: 3414, závažnosti: 21, stát: 1.2010-03-31 17:33:13.16 spid15s během obnovy databáze 'mydb"(databáze ID 13) zabrání restartování došlo k chybě. Diagnostikovat chyby obnovení a je opravit nebo obnovit ze známé platné zálohy. Pokud chyby nejsou opraveny nebo očekávání, obraťte se na technickou podporu

Existuje široké spektrum chyby, které by mohly způsobit obnovení databáze selhání. Při každé chybě na případ od případu musí vyhodnotit, řešení selhání obnovení databáze je obvykle stejné, jak je popsáno v části řešení.

Řešení


Chybová zpráva říká "diagnostikovat chyby obnovení a je opravit nebo obnovit ze známé platné zálohy". Ve skutečnosti obnovení ze zálohy je vaše první, nejlepší možnost, chcete-li vyřešit tento problém. Však nelze obnovit ze zálohy, máte dvě možnosti:

  • Použijte metodu záchranné opravy poskytované DBCC CHECKDB
  • Pokuste se zkopírovat co nejvíce možno do jiné databáze

První metoda je pravděpodobně nejlepším řešením pro získání databáze online a přístupné. Však musí realizovat konzistence nemůže být zaručena, protože obnovení se nezdařilo. Neexistuje žádný způsob, jak vědět, co transakce by měly mít byla vrácena zpět nebo válcované dopředu, ale nebylo dovoleno z důvodu selhání obnovení. Takto pokračujte záchranné opravy jsou popsány v části Řešení chyby databáze v nouzovým režimu v SQL Server Books Online v části příkazu DBCC CHECKDB .

Pokud tato metoda nefunguje, a chcete vyzkoušet a kopírovat data do jiné databáze, je jediným způsobem, jak získat přístup k databázi nejprve pomocí vlastnosti databáze < dbname > nastavit NOUZOVÝ příkaz umístit databázi do nouzového režimu .

Další informace


Ne všechny chyby zjištěné během obnovy databáze způsobí selhání obnovení a podezřelé databáze:

Pokud dojde k chybám při prvním otevírání databáze a transakce soubory protokolu to dochází před obnovení a bude mít za následek chyby, jako je Msg 17204 a 17207. Jakmile jsou tyto chyby opraveny obnovení lze dovoleno pokračovat (ale není zaručeno, že dokončení dojde-li další rozhodnuí). Výsledkem chyby, například 17204 a 17207 PODEZŘELÉ databáze. Stav databáze je ve skutečnosti RECOVERY_PENDING při výskytu těchto problémů. Další informace o odstraňování potíží chyba 17204 nebo 17207 naleznete v následujícím článku: odstraňování potíží s chybou 17204 a 17207 v serveru SQL Server.

SQL Server 2005 zavádí nový koncept pro povolení obnovení provést, i když zjistila úrovně Chyba stránky a přitom zachovat transakční konzistence. To má snížit počet scénářů, které jsou výsledkem PODEZŘELÉ databáze. Tento pojem je obecně označovány jako Odložené transakce.

Pokud chybu během obnovení došlo k problému s databázi stránky jako je chyba kontrolního součtu nebo Msg 824, obnovení může být povoleno dokončeno s chybami čekající. V případě, kdy transakce nepotvrzenými může způsobit chybu stránky stejně jako kontrolní součet situaci nazývá Odložené transakce umožňuje obnovení k dokončení.  Další informace o odložené transakcí a jejich obnovení, naleznete v části Odložené transakcí v SQL Server Books Online.

Následující položky ERRORLOG je uveden příklad Msg 824 chyby zjistil během zotavení, ale bylo povoleno obnovení k dokončení odložené transakcí. Všimněte si absence chybovou 3414 v této situaci a zprávu, která byla dokončena pro obnovení databáze:

2010-03-31 19:17:18.45 chyba spid7s: 824, závažnosti: 24, stav: 2.2010-03-31 19:17:18.45 spid7s SQL Server zjistil logické vstupně-výstupní chybě konzistence systémem: nesprávný kontrolní součet (očekávání: 0xb2c87a0a; skutečné: 0xb6c0a5e2). K němu došlo při čtení stránky (1:153) v databázi ID 13 na posunu 0x00000000132000 v souboru "C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\mydb.mdf'.  Další zprávy do serveru SQL Server chybě protokolu nebo systému protokolu událostí může poskytnout více podrobností. To je vážné chybovou podmínku, která ohrožuje integritu databáze a musí být opraveny okamžitě. Proveďte kontrolu konzistence celé databáze (DBCC CHECKDB). Tato chyba může být způsobeno mnoha faktory; Další informace naleznete v tématu SQL Server Books Online.2010-03-31 19:17:18.45 chyba spid7s: 3314, závažnosti: 21, stát: 1.2010-03-31 19:17:18.45 spid7s při vrácení operace zaznamenané v databázi mydb, došlo k chybě na ID záznamu protokolu (25:100:19). Konkrétní selhání je obvykle protokolována dříve za chybu služby protokol událostí systému Windows. Obnovení ze zálohy databáze nebo soubor nebo opravit spid7s 19:17:18.45 database.2010-03-31 chyby došlo k chybě během zotavení při vrácení transakce zpět. Transakce byla odložena. Chybná stránka nebo soubor obnovit a znovu spusťte obnovení.2010-03-31 19:17:18.45 spid7s dokončení obnovení pro mydb databáze (databáze ID 13) 2 second(s) (analýza 204 ms znovu 25 ms, paní zpět 1832) Toto je pouze informační zpráva. Není vyžadována žádná akce uživatele.

V případě potvrzené transakce, která je vrácena vpřed na stránku lze označit nepřístupné (všechny budoucí pokusy o přístup stránku výsledků v Msg 829) a může být povoleno obnovení k dokončení. V této situaci musí být opraveny chyby na stránce obnovení ze zálohy nebo navrácení stránky pomocí DBCC CHECKDB s opravit.

Poznámka: Odložené transakce je pokročilá funkce serveru SQL Server k dispozici pouze v Enterprise Edition a má určitá omezení a požadavky:

  • Databáze musí používat modelu obnovení celé nebo HROMADNĚ ZAEVIDOVANÉ.
  • AT nejméně jedna databáze a protokolu zálohování musí byly dokončeny pro databázi
  • To se nevztahuje na chyby zjištěné během vrácení transakce po databáze je v režimu online. (například Chyba za běhu )
  • Nefunguje při připojení selhání obnovení databáze
  • Některé transakce, jako jsou například transakce systému (například rozdělení stránky) nejsou podporovány pro odložené