Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Details
| Attribute | Value |
|---|---|
| Název produktu | SQL Server |
| ID události | 9004 |
| Zdroj události | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | LOG_CORRUPT |
| Text zprávy | Při zpracování protokolu pro databázi%.*ls došlo k chybě. Pokud je to možné, proveďte obnovení ze zálohy. Pokud není záloha dostupná, může být nutné znovu sestavit protokol. |
Vysvětlení
Při zpracování logu při rollbacku, obnově nebo replikaci došlo k chybě. To může naznačovat chybu zjištěnou operačním systémem nebo interní chybu konzistence zjištěnou SQL Server.
Databázový stroj systému SQL Server provádí logické kontroly konzistence obsahu transakčních logů při čtení a zpracování. Ne všechny aspekty hlavičky logu, bloků logů a záznamů logu jsou kontrolovány. Státní číslo poskytuje více informací o typu poruchy:
- Stav 1 Hlavička log souboru Virtual Log File (VLF) byla poškozena. Pokud je při spuštění databáze při spuštění služby nalezena poškozená hlavička logu, můžete v ERRORLOGu vidět pouze chybu 9004. Hlavička logovacího souboru je první částí každého VLF uvnitř transakčního logu. Hlavička log souboru není totéž jako hlavička jednoho souboru nebo prvních 8 KB log souboru. Pokud je hlavička logu poškozena, může dojít k poškození stránky Msg 5172, podobně jako poškození stránky hlavičky databázového souboru.
- Stav 2 a 3 Log block byl neplatný při provádění obnovy během operace RESTORE .
- Státy 4 až 12 To vše jsou různé kontroly logovacích bloků při zpracování záznamů logů. Patří sem kontrola parity, sektorů a dalších logických kontrol konzistence transakčního logu
Ve většině případů se tato chyba objevuje pouze v ERRORLOGu nebo Windows Application Event Log s EventID = 9004, protože operace zpracování logu není založena na přímém uživatelském příkazu (například obnova při spuštění SQL Server Engine). V těchto situacích je chyba 9004 často vidět společně s chybou 3414. Některé dotazy, například mohou ALTER DATABASE vyžadovat zpracování logu, a proto tyto chyby uvidí. Protože chyba je na Závažnosti=21, uživatelská relace je odpojena.
Příčina
Chyba 9004 je obecná chyba indikující obsah transakčního logu poškozený. Důvody, proč se log stávají nekonzistentními, jsou podobné jakémukoli problému s poškozením databáze zjištěnému SQL Server Enginem. Abyste zjistili příčinu poškození logu, měli byste použít podobné techniky používané pro poškození databáze, včetně analýzy možných hardwarových, souborových a I/O problémů. Upozorňujeme, že DBCC CHECKDB nekontroluje transakční log jako součást svých operací a nemůže detekovat chyby poškození logu. Chybu 9004 vyhodí samotný SQL Server Engine.
Uživatelská akce
Jedna z následujících akcí tuto chybu opraví:
Obnova ze zálohy: Obnova ze známé dobré zálohy, abyste se z tohoto problému zotavili. Je možné, že pokud část záznamů databáze nebo logové zálohy obsahuje poškozený obsah, narazíte na chybu 9004 na .RESTORE V této situaci je záznam transakcí v záloze poškozen.
Obnovit log: Pokud se vám nepodaří obnovit ze zálohy, můžete databázi znovu vytvořit transakční log. Měli byste pečlivě pochopit důsledky obnovení transakčního logu. To zahrnuje i možnou ztrátu transakční konzistence ve vaší databázi. Pro více informací o tom, jak obnovit transakční log, viz Řešení chyb v režimu nouzové situace databáze.
Zkontrolujte logy na systémové problémy: Zkontrolujte také systémové záznamy událostí a chybové záznamy, abyste identifikovali problémy v systému, které mohly způsobit problém.