1. Pochopenie poškodenia súborov MDF
MDF súbory sú základom SQL Servermechanizmus ukladania dát. Tieto kritické komponenty potrebujú rýchlu detekciu a správne metódy obnovy, keď sa poškodia, aby sa minimalizovala strata dát. Dozvieme sa o súboroch MDF a o tom, ako opraviť poškodené súbory MDF.
1.1 Čo je súbor MDF SQL Server?
MDF (Master Database File) slúži ako hlavný dátový súbor v SQL Server ktorý obsahuje všetky používateľské údaje, ako sú tabuľky, indexy, uložené procedúry, zobrazenia a ďalšie databázové objekty. Tento súbor obsahuje schému aj skutočné údaje, čo z neho robí najdôležitejšiu súčasť každého SQL Server databázy. Prípona .mdf identifikuje tento primárny súbor, ktorý spolupracuje so súbormi denníka (.ldf). Tieto protokolové súbory sledujú informácie o transakciách potrebné na operácie obnovy.
1.2 Bežné príčiny poškodenia súboru MDF
Vaše súbory MDF sa môžu poškodiť z niekoľkých dôvodov:
- Výpadky napájania alebo nesprávne SQL Server Odstávky
- Poruchy hardvéru, najmä problémy úložného subsystému
- Chybné sektory na ukladacej jednotke
- Malvérové alebo vírusové útoky na nechránené systémy
- Chyby súborového systému, ktoré ovplyvňujú úložisko databázy
- Softvérové chyby SQL Server sám
Zlyhanie systému počas aktívnych operácií databázy môže výrazne zvýšiť riziko poškodenia, pretože môže zastaviť dôležité operácie zápisu.
1.3 Užitočné tipy na zabránenie poškodeniu súborov MDF
Tu je návod, ako môžete chrániť svoje súbory MDF pred poškodením:
- Vytvárajte pravidelné zálohy a automaticky kontrolujte ich integritu
- Použite CHECKSUM ako voľbu Page Verify pre všetky databázy
- Spustite príkazy BACKUP DATABASE s CHECKSUM
- Získajte UPS, aby ste sa vyhli náhlym vypnutiam
- Často kontrolujte miesto na disku, aby ste predišli problémom s ukladaním
- Aktualizácia SQL Server a operačný systém s bezpečnostnými záplatami
- Pravidelne spúšťajte DBCC CHECKDB na všetkých databázach
1.4 Bežné znaky poškodeného súboru MDF
Rýchla detekcia poškodenia súboru MDF vám môže ušetriť veľa času na obnovu. Nižšie sú uvedené niektoré bežné znaky poškodenia súboru MDF:
- Chybové hlásenia pri pokuse o pripojenie alebo prístup k databáze
- Databáza sa zobrazuje v režime SUSPECT alebo RECOVERY_PENDING
- I/O chyby v SQL Server protokoly, najmä chyby 823, 824 alebo 825
- Chyby alokácie na stránkach GAM/SGAM/IAM/PFS.
- Chyby konzistencie počas operácií databázy
- Náhle problémy s výkonom
Nižšie sú uvedené niektoré bežné chybové hlásenia, keď je súbor MDF poškodený:
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc) xxx.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)
Attach database failed for Server ‘xxx’. (Microsoft.SqlServer.Smo) The header for file ‘xxx.mdf’ is not a valid database file header. The FILE SIZE property is incorrect.(Micosoft SQL Server, Error:5172)
SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x2abc3894; actual: 0x2ebe208e). It occurred during a read of page (1:1) in database ID 12 at offset 0x00000000002000 in file ‘xxx.mdf’. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.(Microsoft SQL Server, Error:824)
SQL Server detected a logical consistency-based I/O error: torn page (expected signature: 0x########; actual signature: 0x#######).
2. Bezplatné manuálne metódy na opravu súboru MDF
SQL ServerNatívne metódy poskytujú bezplatné metódy na opravu poškodených súborov MDF. Tieto manuálne prístupy môžu zachrániť databázy, ku ktorým nemáte prístup, ale vyžadujú si starostlivé vykonanie.
2.1 Obnovenie z nedávnej zálohy
Najspoľahlivejšia metóda obnovy začína obnovením z nedávnej zálohy. Tento prístup obchádza poškodenie tým, že sa vráti do zdravého stavu. Príkaz RESTORE DATABASE so správnymi parametrami FROM DISK môžete použiť na obnovenie databázy do stavu pred poškodením. Integrita vašich údajov zostáva neporušená bez ohrozenia vzťahov medzi objektmi databázy.
2.2 Použitie DBCC CHECKDB s možnosťami REPAIR
DBCC CHECKDB vám poskytuje vstavané možnosti opravy, ak obnovenie zálohy nie je možné:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Príkaz má tri úrovne opravy:
- REPAIR_FAST: Zachováva syntax len pre spätnú kompatibilitu; nevykonáva žiadne opravy
- OPRAVA_REKONŠTRUKCIA: Vykonáva opravy bez straty dát
- REPAIR_ALLOW_DATA_LOSS: Opravuje všetky nahlásené chyby, ale môže obetovať niektoré údaje
Máme komplexný sprievodca pre DBCC CHECKDB ktorá pokrýva všetky možnosti a scenáre (k dispozícii je aj oficiálna dokumentácia spoločnosti Microsoft tu).
2.3 Riziká používania REPAIR_ALLOW_DATA_LOSS
Možnosti opravy prinášajú riziká. REPAIR_ALLOW_DATA_LOSS môže úplne odstrániť poškodené stránky, čo vedie k trvalej strate údajov. Taktiež ignoruje obmedzenia cudzích kľúčov, ktoré môžu narušiť relačnú integritu medzi tabuľkami. Takže,
- Pred opravou by ste mali manuálne zálohovať poškodený súbor MDF.
- Po oprave by ste mali overiť obmedzenia pomocou príkazu DBCC CHECKCONSTRAINTS, aby ste našli chyby v obchodnej logike.
2.4 Použitie DBCC CHECKTABLE
DBCC CHECKTABLE vám poskytuje cielený prístup k poškodeniu v konkrétnych tabuľkách:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Tento príkaz sa pozerá na jednu tabuľku namiesto na celú databázu. Beží rýchlejšie a má menej rizík, keď viete, ktoré tabuľky majú problémy.
2.5 Nastavenie databázy do režimu NÚDZOVÝ PREPAD a JEDEN_POUŽÍVATEĽ
Vážne poškodené databázy môžu potrebovať ako poslednú možnosť NÚDZOVÝ režim:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Ak normálny prístup zlyhá, správcovia databázy získajú prístup iba na čítanie prostredníctvom núdzového režimu. Proces prebuduje protokol transakcií, ale stratíte transakčnú konzistenciu a prerušíte reťazec OBNOVENIA. Pred pokusom o núdzové opravy si zálohujte súbory databázy, aby boli možnosti obnovenia otvorené.
2.6 Metóda „Hack Attach“
Ak nemôžete priložiť poškodený súbor MDF SQL Server, môžete vyskúšať metódu „hack attach“:
- Vytvorte fiktívnu databázu s rovnakým názvom ako vaša poškodená databáza
- Prepnite databázu figurín do režimu offline
- Odstráňte fiktívne databázové súbory
- Skopírujte poškodený súbor MDF do umiestnenia fiktívneho súboru
- Spustite databázu online
Táto metóda neopraví korupciu, ale pomáha SQL Server rozpoznať súbor a povoliť príkazy na opravu.
2.7 Oprava poškodenej hlavnej databázy
Poškodenie hlavnej databázy vyžaduje tieto kroky:
- Skopírujte poškodený súbor master.mdf ako databázu používateľov na iný server.
- Použite manuálne metódy alebo DataNumen SQL Recovery obnoviť z neho objekty.
- Exportujte obnovené objekty do skriptu.
- Obnova hlavnej databázy
na pôvodnom serveri.
- Spustite skript vygenerovaný v kroku 3 na opätovné vytvorenie používateľov a objektov.
2.8 Obnova podozrivej databázy MSDB
MSDB je systémová databáza, ktorá uchováva informácie o úlohách agenta, histórii zálohovania a obnovy, plánoch údržby a konfiguráciách pošty databázy. Ak ju nemožno otvoriť a je pri obnove označená ako PODOZRIVÁ, môžete použiť jednu z nasledujúcich metód:
- Obnovte ho zo zálohy.
- Znovuvytvorte MSDB pomocou instmsdb.sql
.
3. Použitím DataNumen SQL Recovery na opravu poškodeného súboru MDF
Ak vyššie uvedené manuálne metódy zlyhajú, môžete vyskúšať profesionálne nástroje, ako napríklad DataNumen SQL Recovery, ktorý vám pomôže opraviť poškodené súbory MDF, ktoré SQL ServerVstavané nástroje si s tým neporadia. Softvér používa pokročilé algoritmy na získanie čo najväčšieho množstva údajov z poškodených súborov a ponúka vám veľa možností obnovy.
3.1 Oprava jedného súboru
Proces opravy jedného súboru je jednoduchý a ľahko sledovateľný:
- Zatvorte všetky programy, ktoré by mohli zmeniť súbor MDF.
- štart DataNumen SQL Recovery.
- Vyberte poškodený súbor MDF zadaním jeho názvu alebo kliknutím na tlačidlo Prehľadávať.
- Zahrňte všetky súvisiace súbory NDF, ak ich potrebujete.
- Vyberte formát zdrojovej databázy alebo nechajte systém, aby ho zistil:
- Vyberte, kam chcete uložiť obnovený súbor.
- Kliknite na tlačidlo „Spustiť obnovu“ a softvér sa pripojí k vášmu SQL Server s názvom servera a prihlasovacími údajmi.
- Potom softvér opraví váš súbor pomocou pokročilých algoritmov obnovy.
Zobrazí sa indikátor priebehu, ktorý ukazuje, ako oprava prebieha. Po dokončení môžete skontrolovať obnovenú databázu SQL Server Štúdio manažmentu.
3.2 Opravte dávku súborov
Spoločnosti s viacerými poškodenými databázami ušetria čas vďaka dávkovej oprave. Všetky poškodené súbory MDF môžete pridať do frontu, nastaviť výstupné preferencie a spustiť obnovu. Táto funkcia funguje skvele v obchodných prostrediach, ktoré potrebujú opraviť systémové problémy s databázou.
Podrobné kroky:
- Prejdite na kartu „Dávkové obnovenie“.
- Ak chcete pridať viacero súborov, kliknite na „Pridať súbory“. SQL Server MDF súbory na opravu.
- Môžete tiež kliknúť na „Hľadať súbory“ a nájsť súbory, ktoré sa majú opraviť na lokálnom počítači.
- Kliknite na tlačidlo „Spustiť obnovu“
- Všetky súbory PST v zozname budú opravené jeden po druhom.
3.3 Obnova z pevného disku, obrazu disku alebo záložných súborov
DataNumen SQL Recovery robí viac ako štandardné zotavenie. Môže získať údaje SQL z:
- Diskové súbory virtuálneho stroja VMWare VMDK
- Virtuálne PC súbory VHD
- ISO obrazové súbory
- Záložné súbory systému Windows NTP (.bkf)
- Súbory Acronis True Image (.tib)
- Norton Ghost files (.gho, .v2i)
Táto flexibilita je skvelý spôsob, ako dostať svoje údaje späť do rôznych scenárov, ako napríklad:
- Vymažete databázu v SQL Server.
- Naformátujete pevný disk.
- Porucha pevného disku.
- Virtuálny disk vo VMWare alebo Virtual PC je poškodený alebo poškodený a máte na ňom uloženú databázu.
- Záložný súbor na záložnom médiu je poškodený alebo poškodený a databázový súbor z neho nemôžete obnoviť.
- Súbor obrazu disku je poškodený alebo poškodený a nemôžete z neho obnoviť svoj súbor MDF.
Vo vyššie uvedených prípadoch sa možno budete môcť zotaviť SQL Server priamo z pevného disku, obrazu disku alebo záložných súborov.
Ak máte po ruke obraz disku alebo záložné súbory, môžete postupovať takto:
- Kliknutím na tlačidlo „…“ vyberte zdrojový súbor.
- V dialógovom okne „Otvoriť súbor“ vyberte ako filter „Všetky súbory (*.*)“.
- Vyberte obraz disku alebo záložný súbor ako zdrojový súbor, ktorý chcete opraviť.
- Nastavte názov výstupného súboru pevnej databázy, napríklad E_Drive_fixed.mdf.
Ak chcete obnoviť priamo z pevného disku, môžete použiť DataNumen Disk Image na vytvorenie súboru obrazu disku pevného disku ako zdrojového súboru DataNumen SQL Recovery:
- Vyberte pevný disk alebo disk.
- Nastavte názov výstupného obrazového súboru.
- Kliknite na tlačidlo „Spustiť klonovanie“ a vytvorte súbor s obrazom disku z pevného disku/disku.
3.4 Obnovenie odstránených záznamov a tabuliek
Ak omylom vymažete niektoré záznamy v tabuľke alebo niektoré tabuľky v databáze, môžete ich obnoviť pomocou DataNumen SQL Recovery.
V prípade neodstránených záznamov sa nemusia zobraziť v rovnakom poradí ako pred odstránením, takže po obnovení bude pravdepodobne potrebné na vyhľadanie týchto neodstránených záznamov použiť príkazy SQL.
Ak v prípade nezmazaných tabuliek nie je možné obnoviť ich názvy, premenujú sa na tabuľky „Recovered_Table1“, „Recovered_Table2“ atď. ...
3.5 Obnova z ransomvéru alebo vírusu
Štandardné metódy zvyčajne nedokážu opraviť databázy zašifrované škodlivým softvérom. DataNumen SQL Recovery využíva špeciálne algoritmy na získanie údajov zo súborov MDF zašifrovaných ransomware bez platenia útočníkov. Softvér dokáže obnoviť súbory aj po tom, čo šifrovanie poškodilo ich hlavičky alebo vnútorné štruktúry.
3.6 Oprava obnoveného súboru
Ak súbory MDF obnovil DataNumen Data Recovery (alebo iné nástroje na obnovu dát) nemožno pripojiť SQL Server, tieto súbory môžu byť stále poškodené. V takom prípade použite DataNumen SQL Recovery znovu ich opraviť, aby sa zabezpečilo, že ich údaje budú dostupné v SQL Server.
3.7 Obnova z tempdb.mdf
Kedy SQL Server Keď je spustený, uloží všetky dočasné údaje vrátane všetkých dočasných tabuliek a procedúr ukladania do dočasnej databázy s názvom tempdb.mdf. Ak dôjde k dátovej katastrofe a nedokážete obnoviť požadované údaje z existujúcich súborov mdf a súvisiacich súborov ndf, stále môžete obnoviť údaje zo súboru tempdb.mdf pomocou DataNumen SQL Recovery, nasledovne:
- Stop SQL Server Služba Data Engine.
- Pomocou funkcie vyhľadávania systému Windows vyhľadajte súbor tempdb.mdf v počítači, kde je SQL Server inštancia je nainštalovaná.
- Keď nájdete súbor tempdb.mdf, môžete ho vybrať ako zdrojový súbor, ktorý sa má obnoviť, a použiť ho DataNumen SQL Recovery obnoviť to.
3.8 Vzorové súbory
| SQL Server verzia | Poškodený súbor MDF | Súbor MDF opravený DataNumen SQL Recovery |
| SQL Server 2014 | Chyba1_4.mdf | Chyba1_4_fixed.mdf |
| SQL Server 2014 | Chyba2_4.mdf | Chyba2_4_fixed.mdf |
| SQL Server 2014 | Chyba4_4.mdf | Chyba4_4_fixed.mdf |
| SQL Server 2014 | Chyba5_4.mdf | Chyba5_4_fixed.mdf |
4. Online služby obnovy
Online služby vám poskytujú iný spôsob opravy databáz SQL, keď sťahovanie a inštalácia softvéru na obnovu nie je možná alebo pohodlná. Tieto online služby pomáhajú opraviť poškodené súbory MDF bez potreby hlbokých technických znalostí.
4.1 Jednoduché postupy obnovy
Online služby obnovy SQL sa riadia jednoduchým procesom:
- Nahrajte poškodený súbor – Váš poškodený súbor MDF sa bezpečne prenesie na server poskytovateľa služieb prostredníctvom šifrovaného pripojenia
- Spracovanie a analýza – Služba skenuje váš súbor pomocou špecializovaných algoritmov a identifikuje obnoviteľné údaje
- Ukážka výsledkov obnovenia – Pred vykonaním úplnej obnovy si môžete prezrieť obnoviteľné databázové objekty
- Stiahnite si opravený súbor – Opravený databázový súbor alebo SQL skripty budú dostupné po spracovaní
Tieto cloudové služby fungujú s SQL Server databázové súbory ako .mdf, .ndf a .ldf. Veľkosť súboru a závažnosť poškodenia určujú čas spracovania, ktorý sa pohybuje od sekúnd do minút.
4.2 kladov a záporov
Výhody online obnovy:
- Nemusíte inštalovať softvér – ideálne pre obmedzené prostredia alebo používateľov bez práv správcu
- Funguje na akomkoľvek operačnom systéme vrátane MacOS a Linuxu
- Pripravené na použitie bez sťahovania veľkých softvérových balíkov
- Užívateľsky prívetivé rozhranie vyhovuje ľuďom so základnými technickými zručnosťami
- Pred nákupom si môžete pozrieť obnoviteľné údaje
Obmedzenia, na ktoré treba myslieť:
- Nahrávanie citlivých databázových informácií na servery tretích strán vyvoláva obavy o súkromie
- Maximálna veľkosť databázy má obmedzenia
- Menej možností prispôsobenia ako offline nástroje
- Rýchlosť obnovy závisí od výkonu a zaťaženia servera
- Demo verzie zobrazujú do zakúpenia iba niektoré obnoviteľné údaje
Nástroje na offline obnovu vám poskytujú väčšiu kontrolu a súkromie, ale vyžadujú si viac technických znalostí. Väčšina online služieb vám umožňuje otestovať ich účinnosť pomocou bezplatných ukážok. Tieto ukážky obnovujú vzorové údaje a označujú ďalšie obnoviteľné položky zástupnými symbolmi.
Najlepšia voľba medzi online a offline obnovou závisí od vašich potrieb. Dôležitú úlohu pri tomto rozhodovaní zohráva časový tlak, technické zručnosti, citlivosť na údaje a typ poškodenia súborov MDF.
5. Ďalšie riešenia
Zatiaľ čo metódy uvedené v predchádzajúcich častiach riešia väčšinu scenárov poškodenia súborov MDF, prostredie obnovy databáz ponúka aj ďalšie špecializované riešenia. Vyhodnotili sme početné prístupy a zostavili sme... tento komplexný zoznam najúčinnejších alternatívnych metód ktoré dopĺňajú základné stratégie opravy.
6. Po oprave: Overte a zabezpečte svoju databázu
Oprava poškodeného súboru MDF rieši len polovicu problému. Vaša databáza musí po úspešnej obnove overiť správnosť a zabezpečiť, aby sa zachovala integrita údajov a zastavili sa budúce problémy.
6.1 Kontrola integrity obnovených údajov
Podrobná kontrola overenia zaisťuje, že všetky údaje zostanú po oprave nedotknuté. Príkaz DBCC CHECKDB s DATA_PURITY vyhľadáva neplatné hodnoty:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Tento príkaz zistí hodnoty stĺpcov, ktoré môžu byť neplatné alebo mimo rozsahu pre ich typy údajov. Majte na pamäti, že všetky zistené chyby musíte opraviť manuálne, pretože možnosti opravy ich nedokážu opraviť automaticky.
DBCC CHECKCONSTRAINTS pomáha overiť, či obchodná logika zostáva nedotknutá, pretože operácie opravy nekontrolujú ani neudržiavajú obmedzenia cudzích kľúčov.
6.2 Obnova indexov a obmedzení
Optimalizácia výkonu sa stáva ďalším krokom po overení integrity údajov. Operácie opráv často zanechávajú indexy fragmentované, čo si vyžaduje rýchlu pozornosť:
ALTER INDEX ALL ON table_name REBUILD;
Jadrový tím by mal najprv znovu zostaviť špecifické indexy s vysokou mierou používania, aby rýchlo obnovil výkon v kritických systémoch. Tým sa vytvoria nové, správne hostované indexy, ktoré zrýchlia časy odozvy na dotazy.
6.3 Zálohovanie opravenej databázy
Okamžite vytvorte úplnú zálohu svojej novo opravenej databázy:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Voľba CHECKSUM kontroluje integritu zálohy počas operácie. Potom otestujte zálohu na testovacom serveri, aby ste sa uistili, že funguje správne, skôr než ju použijete na obnovu produkcie.
6.4 Nastavenie monitorovania a upozornení
Proaktívne monitorovanie pomáha odhaliť potenciálne problémy skôr, ako poškodia údaje. Nastavte upozornenia pre kľúčové metriky vrátane:
- Percento CPU (prah: 90 %)
- Percento využitého dátového priestoru (prah: 95 %)
- Využitie pracovníkmi (prah: 60 %)
- Uviaznutie (akýkoľvek výskyt)
- Systémové chyby pri pokusoch o pripojenie
Azure Monitor alebo SQL Server Management Studio dokáže nakonfigurovať tieto upozornenia. Stavové výstrahy zostávajú spustené, kým sa nevyriešia, čo zabraňuje búrkam upozornení počas pretrvávajúcich problémov.
Týždenné kontroly integrity pomocou DBCC CHECKDB by sa mali spúšťať na kritických databázach, aby sa včas zachytili problémy.
7. Časté otázky
Poškodenie databázy vytvára veľa otázok od používateľov. Pozrime sa na niektoré bežné otázky týkajúce sa opravy súborov MDF v SQL Server.
7.1 Môžem obnoviť súbor MDF bez súboru LDF?
Odpoveď: Áno, s profesionálnymi nástrojmi, ako napr. DataNumen SQL Recovery, môžete obnoviť súbor MDF bez súboru LDF.
7.2 Mám použiť nástroje na opravu od iných výrobcov alebo vstavané metódy?
Odpoveď: Vstavané metódy si zaslúžia prvý pokus, pretože majú oficiálnu podporu. Napriek tomu môžu nástroje tretích strán v závažných prípadoch poškodenia obnoviť viac údajov. Najlepšia voľba závisí od:
- Kritickosť údajov
- Dostupnosť zálohy
- Časové limity
- Obmedzenia rozpočtu
- Tolerancia rizika straty údajov
8. Záver
SQL Server poškodenie databázy si vyžaduje rýchlu detekciu a správne metódy obnovy, aby sa minimalizovala strata údajov. Znaky poškodenia súborov MDF vám pomôžu rýchlo konať, keď sa vyskytnú problémy. Máte viacero možností obnovenia, od vstavaného SQL Server nástroje pre špecializované riešenia tretích strán, ako napríklad DataNumen SQL Recovery náradieNižšie je uvedené zhrnutie tohto článku:
Prevencia funguje lepšie ako liečba. Pravidelná údržba databázy, správne postupy zálohovania a monitorovanie stavu disku podstatne znižujú riziko poškodenia. Systém tiež potrebuje overiť obnovené databázy priamo prostredníctvom kontroly integrity a prebudovať indexy, aby zachoval spoľahlivosť údajov po opravách.









