Při použití Microsoft SQL Server pro připojení nebo přístup k poškozenému databázovému souboru MDF se můžete setkat s řadou chybových zpráv, které mohou být matoucí. Níže uvádíme všechny chyby seřazené podle četnosti. U každé chyby nastíníme její příznaky, vysvětlíme přesnou příčinu a poskytneme vzorové soubory spolu se soubory opravenými DataNumen SQL Recovery. To vám pomůže lépe porozumět těmto chybám. Poznámka 'xxx.MDF' bude představovat název vašeho poškozeného SQL Server MDF databázový soubor.
Na základě SQL Server nebo CHECKDB chybové zprávy, existují tři druhy chyb:
-
- Chyby přidělení: Víme, že data v souborech MDF a NDF jsou alokována jako stránky. Existuje několik speciálních stránek, které se používají pro správu alokace, a to následovně:
Typ stránky | Popis |
Stránka GAM | Ukládejte informace o mapě globálního přidělení (GAM). |
Stránka SGAM | Ukládejte informace o sdílené mapě globálního přidělení (SGAM). |
Stránka IAM | Uložit informace o mapě přidělení indexu (IAM). |
Stránka PFS | Uložte informace o alokaci PFS. |
Pokud některá z výše uvedených alokačních stránek obsahuje chyby nebo jsou data spravovaná těmito alokačními stránkami v rozporu s informacemi o alokaci, pak SQL Server nebo CHECKDB bude hlásit alokační chyby.
- Chyby konzistence: Pro stránky které se používají k ukládání dat, včetně datových stránek a indexových stránek, pokud SQL Server nebo CHECKDB zjistí jakýkoli nesoulad mezi obsahem stránky a kontrolním součtem, poté se ohlásí chyby konzistence.
- Všechny ostatní chyby: Mohou existovat další chyby, které nespadají do výše uvedených dvou kategorií.
- xxxx.mdf není primární databázový soubor. (Microsoft SQL Server, Chyba: 5171)
- Záhlaví souboru 'xxxx.mdf' není platná záhlaví souboru databáze. Vlastnost VELIKOST SOUBORU je nesprávná. (Microsoft SQL Server, Chyba: 5172)
- SQL Server detekována logická chyba I / O založená na konzistenci: nesprávný kontrolní součet
- SQL Server detekována logická chyba I / O založená na konzistenci: roztržená stránka
- Omylem odstraníte některé záznamy nebo některé tabulky v databázi.
SQL Server má vestavěný nástroj s názvem DBCC, který má CHECKDB a KONTROLNÍ TABULKA možnosti, které mohou pomoci opravit poškozenou databázi MDF. U vážně poškozených souborů databáze MDB však DBCC CHECKDB a KONTROLNÍ TABULKA také selže.
Chyby konzistence hlášené CHECKDB:
- SQL Server detekována logická chyba I / O založená na konzistenci: nesprávný kontrolní součet
- Řádek v sys.xxx nemá odpovídající řádek v sys.xxx.
- Chyba tabulky: ID objektu ##, ID indexu ## bude znovu sestaveno.
- Tento index systémové tabulky nelze znovu vytvořit.
- ID objektu ##, ID indexu ##, ID oddílu ##, ID alokační jednotky ## (typ Neznámý), ID stránky (##: 560) obsahuje v záhlaví stránky nesprávné ID stránky.
Chyby přidělení hlášené CHECKDB:
- Stránka Index Allocation Map (IAM) je ukazována dalším ukazatelem stránky IAM
- Rozsah (##: ##) v ID databáze ## je označen jako přidělený v GAM, ale žádný SGAM ani IAM jej nepřidělil.
Všechny ostatní chyby hlášené CHECKDB:
- Selhalo: (- ########) Provedení dotazu „DBCC CHECKDB (xxxx) S NO_INFOMSGS“ se nezdařilo s následující chybou: „xxxx“.
- Během čtení na offsetu 0x ###### v souboru 'xxxx.mdf' byla zjištěna chyba I / O (špatné ID stránky).
- Systém nemohl aktivovat dostatek databáze k opětovnému vytvoření protokolu
- Ztráta dat při opravě s CHECKDB
- Zdá se, že soubor byl operačním systémem zkrácen.
- Během opakování přihlášení operace v databázi 'xxxx' došlo k chybě u ID záznamu protokolu.