Keď používate Microsoft SQL Server Ak chcete pripojiť alebo získať prístup k poškodenému súboru databázy MDF, uvidíte rôzne chybové správy, ktoré vám môžu byť trochu mätúce. Preto sa tu pokúsime uviesť všetky možné chyby zoradené podľa frekvencie ich výskytu. Pri každej chybe popíšeme jej príznak, vysvetlíme jej presný dôvod a uvedieme vzorové súbory, ako aj súbor opravený našou DataNumen SQL Recovery, aby ste im lepšie porozumeli. Ďalej použijeme výraz „xxx.MDF“ na vyjadrenie poškodenia SQL Server Názov súboru databázy MDF.
Na základe SQL Server alebo CHECKDB chybové správy, existujú tri druhy chýb, ktoré spôsobia zlyhanie:
-
- Chyby pri prideľovaní: Vieme, že údaje v súboroch MDF a NDF sú alokované ako stránky. Existuje niekoľko špeciálnych stránok, ktoré sa používajú na správu prideľovania:
Typ stránky | Popis |
Stránka GAM | Ukladajte informácie o mape globálneho pridelenia (GAM). |
Stránka SGAM | Ukladajte informácie o zdieľanej mape globálneho pridelenia (SGAM). |
Stránka IAM | Uložiť informácie o mape priradenia indexu (IAM). |
Stránka PFS | Uložiť informácie o pridelení PFS. |
Ak ktorákoľvek z vyššie uvedených stránok priradenia obsahuje chyby alebo údaje spravované týmito stránkami priradenia nie sú v súlade s informáciami o pridelení, potom SQL Server alebo CHECKDB bude hlásiť alokačné chyby.
- Chyby konzistencie: pre stránky ktoré sa používajú na ukladanie údajov vrátane údajových stránok a indexových stránok, ak SQL Server alebo CHECKDB vyhľadajte akýkoľvek nesúlad medzi obsahom stránky a kontrolným súčtom, potom sa ohlásia chyby konzistencie.
- Všetky ďalšie chyby: Môžu existovať ďalšie chyby, ktoré nespadajú do dvoch vyššie uvedených kategórií.
- xxxx.mdf nie je primárny databázový súbor. (Microsoft SQL Server, Chyba: 5171)
- Hlavička súboru „xxxx.mdf“ nie je platná hlavička súboru databázy. Vlastnosť VEĽKOSŤ SÚBORU je nesprávna. (Microsoft SQL Server, Chyba: 5172)
- SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet
- SQL Server zistil logickú chybu I / O založenú na konzistencii: roztrhnutá stránka
- Omylom odstránite niektoré záznamy alebo tabuľky v databáze.
SQL Server má zabudovaný nástroj s názvom DBCC, ktorý má CHECKDB a CHECKTABLE možnosti, ktoré môžu pomôcť opraviť poškodenú databázu MDF. Pre vážne poškodené súbory databázy MDB však DBCC CHECKDB a CHECKTABLE tiež zlyhá.
Chyby konzistencie hlásené CHECKDB:
- SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet
- Riadok v sys.xxx nemá zodpovedajúci riadok v sys.xxx.
- Chyba tabuľky: ID objektu ##, ID indexu ## sa znova zostaví.
- Tento index systémovej tabuľky nie je možné znova vytvoriť.
- ID objektu ##, ID indexu ##, ID oddielu ##, ID alokačnej jednotky ## (typ Neznámy), ID stránky (##: 560) obsahuje v záhlaví stránky nesprávne ID stránky.
Chyby alokácie hlásené CHECKDB:
- Stránka Index Allocation Map (IAM) je nasmerovaná na ďalší ukazovateľ stránky IAM
- Rozsah (##: ##) v ID databázy ## je označený ako pridelený v GAM, ale žiadny SGAM ani IAM ho nepridelil.
Všetky ďalšie chyby hlásené CHECKDB:
- Zlyhanie: (- ########) Vykonanie dotazu „DBCC CHECKDB (xxxx) S NO_INFOMSGS“ zlyhalo s nasledujúcou chybou: „xxxx“.
- Počas čítania na offsetu 0x ###### v súbore 'xxxx.mdf' bola zistená chyba I / O (chybné ID stránky).
- Systém nemohol dostatočne aktivovať databázu na opätovné vytvorenie protokolu
- Strata dát pri oprave s CHECKDB
- Zdá sa, že operačný systém súbor skrátil.
- Počas opakovania prihlásenej operácie v databáze „xxxx“ sa vyskytla chyba v ID záznamu protokolu.