1. Razumijevanje oštećenja MDF datoteke
MDF turpije temelj su SQL Servermehanizam pohrane podataka. Ove kritične komponente zahtijevaju brzo otkrivanje i odgovarajuće metode oporavka kada se oštete kako bi se smanjio gubitak podataka. Naučimo više o MDF datotekama i kako popraviti oštećene MDF datoteke.
1.1 U čemu je MDF datoteka SQL Server?
MDF (Master Database File) služi kao glavna podatkovna datoteka u SQL Server koja sadrži sve korisničke podatke kao što su tablice, indeksi, pohranjene procedure, prikazi i ostali objekti baze podataka. Ova datoteka sadrži i shemu i stvarne podatke, što je čini najvažnijim dijelom bilo kojeg SQL Server baza podataka. Ekstenzija .mdf identificira ovu primarnu datoteku koja radi zajedno s datotekama dnevnika (.ldf). Ove datoteke dnevnika prate informacije o transakciji potrebne za operacije oporavka.
1.2 Uobičajeni uzroci oštećenja MDF datoteke
Vaše MDF datoteke mogu se oštetiti iz nekoliko razloga:
- Nestanak struje ili nepravilno SQL Server gašenja
- Kvarovi hardvera, posebno problemi podsustava za pohranu
- Loši sektori na disku za pohranu
- Zlonamjerni softver ili virusni napadi na nezaštićene sustave
- Pogreške u datotečnom sustavu koje utječu na pohranu baze podataka
- Softverske pogreške SQL Server sebe
Padovi sustava tijekom aktivnih operacija baze podataka mogu znatno povećati rizik od oštećenja jer mogu zaustaviti važne operacije pisanja.
1.3 Korisni savjeti za sprječavanje oštećenja MDF datoteke
Evo kako možete zaštititi svoje MDF datoteke od oštećenja:
- Izradite redovite sigurnosne kopije i automatski provjeravajte njihov integritet
- Koristite CHECKSUM kao opciju Page Verify za sve baze podataka
- Pokrenite naredbe BACKUP DATABASE s CHECKSUM
- Nabavite UPS kako biste izbjegli iznenadna gašenja
- Često provjeravajte prostor na disku kako biste spriječili probleme s pohranom
- Nadopune SQL Server i operativni sustav sa sigurnosnim zakrpama
- Redovito izvodite DBCC CHECKDB na svim bazama podataka
1.4 Uobičajeni znakovi oštećene MDF datoteke
Brzo otkrivanje oštećenja MDF datoteke može vam uštedjeti mnogo vremena za oporavak. Ispod su neki od uobičajenih znakova oštećenja MDF datoteke:
- Poruke o pogrešci kada pokušate priložiti ili pristupiti bazi podataka
- Baza podataka se prikazuje u načinu SUSPECT ili RECOVERY_PENDING
- I/O pogreške u SQL Server zapise, posebno pogreške 823, 824 ili 825
- Pogreške alokacije na GAM/SGAM/IAM/PFS stranicama.
- Pogreške konzistentnosti tijekom operacija baze podataka
- Iznenadni problemi s performansama
U nastavku su navedene neke uobičajene poruke o pogrešci kada je MDF datoteka oštećena:
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. Besplatne ručne metode za popravak MDF datoteke
SQL ServerIzvorne metode programa pružaju besplatne metode za popravak oštećenja MDF datoteka. Ovi ručni pristupi mogu spasiti baze podataka kojima ne možete pristupiti, ali zahtijevaju pažljivo izvršavanje.
2.1 Vraćanje iz nedavne sigurnosne kopije
Najpouzdanija metoda oporavka započinje vraćanjem iz nedavne sigurnosne kopije. Ovaj pristup zaobilazi oštećenje vraćanjem u ispravno stanje. Možete koristiti naredbu RESTORE DATABASE s odgovarajućim parametrima FROM DISK kako biste vratili bazu podataka u stanje prije oštećenja. Integritet vaših podataka ostaje netaknut bez ugrožavanja odnosa između objekata baze podataka.
2.2 Koristite DBCC CHECKDB s opcijama REPAIR
DBCC CHECKDB daje vam ugrađene mogućnosti popravka ako vraćanje sigurnosne kopije nije opcija:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Naredba ima tri razine popravka:
- REPAIR_FAST: Zadržava sintaksu samo za kompatibilnost sa prethodnim verzijama; ne vrši popravke
- POPRAVAK_OBNOVA: Vrši popravke bez gubitka podataka
- REPAIR_ALLOW_DATA_LOSS: Ispravlja sve prijavljene pogreške, ali može žrtvovati neke podatke
Imamo sveobuhvatan vodič za DBCC CHECKDB koji pokriva sve opcije i scenarije (dostupna je i službena dokumentacija tvrtke Microsoft ovdje).
2.3 Rizici korištenja REPAIR_ALLOW_DATA_LOSS
Mogućnosti popravka dolaze s rizicima. REPAIR_ALLOW_DATA_LOSS može potpuno ukloniti oštećene stranice, što dovodi do trajnog gubitka podataka. Također zanemaruje ograničenja stranog ključa, koja mogu narušiti relacijski integritet između tablica. Tako,
- Prije popravka trebali biste ručno napraviti sigurnosnu kopiju oštećene MDF datoteke.
- Nakon popravka trebali biste provjeriti ograničenja pomoću DBCC CHECKCONSTRAINTS da biste pronašli nedostatke poslovne logike.
2.4 Koristite DBCC CHECKTABLE
DBCC CHECKTABLE vam pruža ciljani pristup za uklanjanje korupcije u određenim tablicama:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Ova naredba gleda jednu tablicu umjesto cijele baze podataka. Radi brže i ima manje rizika nakon što znate koje tablice imaju problema.
2.5 Postavite bazu podataka na EMERGENCY i SINGLE_USER mod
Ozbiljno oštećene baze podataka možda trebaju HITNI način rada kao posljednju opciju:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Administratori baze podataka dobivaju pristup samo za čitanje putem hitnog načina rada ako uobičajeni pristup ne uspije. Proces ponovno gradi dnevnik transakcija, ali vi gubite dosljednost transakcije i prekidate lanac RESTORE. Izradite sigurnosnu kopiju datoteka svoje baze podataka prije pokušaja hitnih popravaka kako bi opcije oporavka ostale otvorene.
2.6 Metoda „Hack Attach“
Ako ne možete priložiti oštećenu MDF datoteku u SQL Server, možete isprobati metodu "hack attach":
- Stvorite lažnu bazu podataka s istim imenom kao vaša oštećena baza podataka
- Prebacite lažnu bazu podataka izvan mreže
- Izbrišite lažne datoteke baze podataka
- Kopirajte oštećenu MDF datoteku na mjesto lažne datoteke
- Postavite bazu podataka na mrežu
Ova metoda neće popraviti oštećenje, ali pomaže SQL Server prepoznaje datoteku i omogućuje naredbe za popravak.
2.7 Popravak oštećene glavne baze podataka
Oštećenje glavne baze podataka zahtijeva ove korake:
- Kopirajte oštećenu master.mdf datoteku kao korisničku bazu podataka na drugi poslužitelj.
- Koristite ručne metode ili DataNumen SQL Recovery oporaviti objekte iz njega.
- Izvezite oporavljene objekte u skriptu.
- Ponovno izgradite glavnu bazu podataka
na originalnom poslužitelju.
- Pokrenite skriptu generiranu u koraku 3 kako biste ponovno stvorili korisnike i objekte.
2.8 Oporavak sumnjive MSDB baze podataka
MSDB je sistemska baza podataka koja pohranjuje informacije o poslovima agenta, povijesti sigurnosnog kopiranja i vraćanja, planovima održavanja i konfiguracijama pošte baze podataka. Ako se ne može otvoriti i oporavak je označio kao SUMNJIVO, možete upotrijebiti jednu od sljedećih metoda:
- Vratite ga iz sigurnosne kopije.
- Ponovno stvaranje MSDB-a pomoću instmsdb.sql
.
3. koristeći DataNumen SQL Recovery za popravak oštećene MDF datoteke
Ako gore navedene ručne metode ne uspiju, možete isprobati profesionalne alate, kao što je DataNumen SQL Recovery, što vam pomaže popraviti oštećene MDF datoteke koje SQL ServerUgrađeni alati ne mogu se nositi s tim. Softver koristi napredne algoritme kako bi izvukao što više podataka iz oštećenih datoteka i nudi vam mnogo mogućnosti oporavka.
3.1 Popravak jedne datoteke
Postupak popravka jedne datoteke jednostavan je i lako ga je slijediti:
- Zatvorite sve programe koji bi mogli promijeniti MDF datoteku.
- Start DataNumen SQL Recovery.
- Odaberite oštećenu MDF datoteku tako da upišete njezin naziv ili kliknete gumb za pregledavanje.
- Uključite sve povezane NDF datoteke ako ih trebate.
- Odaberite format izvorne baze podataka ili pustite sustav da je otkrije:
- Odaberite gdje želite spremiti oporavljenu datoteku.
- Kliknite gumb "Pokreni oporavak", softver će se povezati s vašim SQL Server instancu s vašim imenom poslužitelja i podacima za prijavu.
- Zatim će softver popraviti vašu datoteku svojim naprednim algoritmima za oporavak.
Vidjet ćete traku napretka koja pokazuje kako ide popravak. Nakon što završi, možete pregledati svoju oporavljenu bazu podataka SQL Server Studio za upravljanje.
3.2 Popravak serije datoteka
Tvrtke s nekoliko oštećenih baza podataka uštedjet će vrijeme uz pomoć skupnog popravka. Možete dodati sve oštećene MDF datoteke u red čekanja, postaviti postavke izlaza i pokrenuti oporavak. Ova značajka izvrsno funkcionira u poslovnim okruženjima koja trebaju riješiti sistemske probleme s bazama podataka.
Detaljni koraci:
- Idite na karticu "Batch Recovery".
- Kliknite "Dodaj datoteke" za dodavanje više datoteka SQL Server MDF datoteke za popravak.
- Također možete kliknuti "Traži datoteke" da pronađete datoteke koje treba popraviti na lokalnom računalu.
- Kliknite gumb "Pokreni oporavak"
- Sve PST datoteke na popisu bit će popravljene jedna po jedna.
3.3 Oporavak s tvrdog diska, slike diska ili sigurnosne kopije datoteka
DataNumen SQL Recovery čini više od standardnog oporavka. Može dobiti SQL podatke od:
- VMWare VMDK datoteke diska virtualnog stroja
- Virtual PC VHD datoteke
- ISO slikovne datoteke
- Sigurnosne kopije datoteka sustava Windows N (.bkf)
- Acronis True Image datoteke (.tib)
- Norton Ghost files (.gho, .v2i)
Ova fleksibilnost izvrstan je način za vraćanje podataka u različitim scenarijima, kao što su:
- Izbrišete bazu podataka u SQL Server.
- Formatirate tvrdi disk.
- Kvar tvrdog diska.
- Virtualni disk u VMWare ili Virtual PC je korumpiran ili oštećen i vi pohranjujete bazu podataka na njega.
- Datoteka sigurnosne kopije na mediju za sigurnosnu kopiju je korumpirana ili oštećena i iz nje ne možete vratiti datoteku baze podataka.
- Datoteka slike diska je korumpirana ili oštećena i iz nje ne možete oporaviti MDF datoteku.
U gore navedenim slučajevima možda ćete se ipak moći oporaviti SQL Server podatke s tvrdog diska, sliku diska ili datoteke sigurnosne kopije izravno.
Ako imate pri ruci sliku diska ili datoteke sigurnosne kopije, možete učiniti sljedeće:
- Pritisnite gumb “…” za odabir izvorne datoteke.
- U dijaloškom okviru "Otvori datoteku" odaberite "Sve datoteke (*.*)" kao filtar.
- Odaberite sliku diska ili datoteku sigurnosne kopije kao izvornu datoteku koju želite popraviti.
- Postavite izlazni fiksni naziv datoteke baze podataka, kao što je E_Drive_fixed.mdf.
Ako se želite izravno oporaviti s tvrdog diska, možete koristiti DataNumen Disk Image za stvaranje datoteke slike diska tvrdog diska kao izvorne datoteke DataNumen SQL Recovery:
- Odaberite tvrdi disk ili disk.
- Postavite naziv izlazne slikovne datoteke.
- Kliknite gumb "Pokreni kloniranje" za stvaranje datoteke slike diska s tvrdog diska/diska.
3.4 Oporavak izbrisanih zapisa i tablica
Ako greškom izbrišete neke zapise u tablici ili neke tablice u bazi podataka, možete ih oporaviti putem DataNumen SQL Recovery.
Za neobrisane zapise, oni se možda neće pojaviti istim redoslijedom kao prije nego što su izbrisani, tako da ćete nakon oporavka možda trebati koristiti SQL naredbe da pronađete te neobrisane zapise.
Za neobrisane tablice, ako se njihova imena ne mogu oporaviti, tada će se preimenovati u “Recovered_Table1”, “Recovered_Table2”, i tako dalje...
3.5 Oporavak od Ransomwarea ili virusa
Standardne metode obično ne uspijevaju popraviti baze podataka šifrirane zlonamjernim softverom. DataNumen SQL Recovery iskorištava posebne algoritme za dobivanje podataka iz MDF datoteka šifriranih ransomwareom bez plaćanja napadačima. Softver može oporaviti datoteke čak i nakon što je šifriranje oštetilo njihova zaglavlja ili unutarnje strukture.
3.6 Popravak oporavljene datoteke
Ako je MDF datoteke oporavio do DataNumen Data Recovery (ili drugi alati za oporavak podataka) ne mogu se priložiti SQL Server, ove datoteke mogu još uvijek biti oštećene. U tom slučaju koristite DataNumen SQL Recovery da ih ponovno popravimo, kako bismo osigurali da su njihovi podaci dostupni SQL Server.
3.7 Oporavak iz tempdb.mdf datoteke
Kada SQL Server izvršava, pohranit će sve privremene podatke, uključujući sve privremene tablice i procedure pohrane, u privremenu bazu podataka pod nazivom tempdb.mdf. Kada dođe do katastrofe podataka, ako ne možete oporaviti željene podatke iz postojećih mdf i pridruženih ndf datoteka, možda ćete i dalje moći oporaviti podatke iz tempdb.mdf pomoću DataNumen SQL Recovery, kako slijedi:
- zaustaviti SQL Server Usluga Data Engine.
- Korištenje Windows funkcije pretraživanja za traženje datoteke tempdb.mdf na računalu na kojem je SQL Server instanca je instalirana.
- Nakon što pronađete datoteku tempdb.mdf, možete je odabrati kao izvornu datoteku koju želite oporaviti i koristiti je DataNumen SQL Recovery da ga povratim.
3.8 Primjeri datoteka
| SQL Server verzija | Oštećena MDF datoteka | MDF datoteku popravio DataNumen SQL Recovery |
| SQL Server 2014 | Greška1_4.mdf | Error1_4_fixed.mdf |
| SQL Server 2014 | Greška2_4.mdf | Error2_4_fixed.mdf |
| SQL Server 2014 | Greška4_4.mdf | Error4_4_fixed.mdf |
| SQL Server 2014 | Greška5_4.mdf | Error5_4_fixed.mdf |
4. Online usluge oporavka
Online usluge vam pružaju drugačiji način popravka SQL baza podataka kada preuzimanje i instaliranje softvera za oporavak nije moguće ili praktično. Ove online usluge pomažu u popravku oštećenih MDF datoteka bez potrebe za dubokim tehničkim znanjem.
4.1 Jednostavni postupci oporavka
Online usluge oporavka SQL-a slijede postupak jednostavan za korištenje:
- Učitajte oštećenu datoteku – Vaša oštećena MDF datoteka sigurno se prenosi na poslužitelj davatelja usluge putem šifrirane veze
- Obrada i analiza – Usluga skenira vašu datoteku pomoću specijaliziranih algoritama i identificira podatke koji se mogu povratiti
- Pregledajte rezultate oporavka – Možete pregledati objekte baze podataka koji se mogu oporaviti prije potpunog oporavka
- Preuzmite popravljenu datoteku – Popravljena datoteka baze podataka ili SQL skripte postaju dostupne nakon obrade
Ove usluge u oblaku rade sa SQL Server datoteke baze podataka poput .mdf, .ndf i .ldf. Veličina datoteke i ozbiljnost oštećenja određuju vrijeme obrade, koje se kreće od sekundi do minuta.
4.2 prednosti i nedostataka
Prednosti online oporavka:
- Ne morate instalirati softver – savršeno za ograničena okruženja ili korisnike bez administratorskih prava
- Radi na bilo kojem operativnom sustavu uključujući macOS i Linux
- Spremno za korištenje bez preuzimanja velikih softverskih paketa
- Sučelje prilagođeno korisniku odgovara osobama s osnovnim tehničkim vještinama
- Možete vidjeti povratne podatke prije kupnje
Ograničenja o kojima treba razmišljati:
- Prijenos osjetljivih podataka baze podataka na poslužitelje trećih strana izaziva zabrinutost zbog privatnosti
- Maksimalna veličina baze podataka ima ograničenja
- Manje mogućnosti prilagodbe nego izvanmrežni alati
- Brzina oporavka ovisi o performansama i opterećenju poslužitelja
- Demo verzije prikazuju samo neke povratne podatke do kupnje
Alati za izvanmrežni oporavak daju vam veću kontrolu i privatnost, ali zahtijevaju više tehničkog znanja. Većina online usluga omogućuje vam testiranje njihove učinkovitosti uz besplatne demo verzije. Ove demo verzije oporavljaju uzorke podataka i označavaju druge stavke koje se mogu oporaviti pomoću rezerviranih mjesta.
Najbolji izbor između online i offline oporavka svodi se na vaše potrebe. Vremenski pritisak, tehničke vještine, osjetljivost podataka i vrsta oštećenja MDF datoteke igraju važnu ulogu u ovoj odluci.
5. Više rješenja
Iako metode opisane u prethodnim odjeljcima rješavaju većinu scenarija oštećenja MDF datoteka, okruženje za oporavak baze podataka nudi dodatna specijalizirana rješenja. Procijenili smo brojne pristupe i sastavili ovaj sveobuhvatni popis najučinkovitijih alternativnih metoda koje nadopunjuju strategije popravka jezgre.
6. Nakon popravka: Validirajte i osigurajte svoju bazu podataka
Popravak vaše oštećene MDF datoteke rješava samo pola problema. Potrebno je dokazati da je vaša baza podataka ispravna i osigurati je nakon uspješnog oporavka kako bi se održao integritet podataka i zaustavili budući problemi.
6.1 Provjerite integritet oporavljenih podataka
Detaljna provjera valjanosti osigurava da svi podaci ostanu netaknuti nakon popravka. Naredba DBCC CHECKDB s DATA_PURITY skenira za nevažeće vrijednosti:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Ova naredba uočava vrijednosti stupaca koje bi mogle biti nevažeće ili izvan raspona za svoje vrste podataka. Imajte na umu da sve otkrivene pogreške morate popraviti ručno jer ih opcije popravka ne mogu popraviti automatski.
DBCC CHECKCONSTRAINTS pomaže provjeriti ostaje li poslovna logika netaknuta jer operacije popravka ne provjeravaju niti održavaju ograničenja stranog ključa.
6.2 Ponovno izgradnja indeksa i ograničenja
Optimizacija performansi postaje sljedeći korak kada se provjeri integritet podataka. Operacije popravka često ostavljaju indekse fragmentiranima, što zahtijeva hitnu pozornost:
ALTER INDEX ALL ON table_name REBUILD;
Glavni tim trebao bi prvo ponovno izgraditi specifične indekse s velikom korištenjem kako bi brzo vratio performanse na kritičnim sustavima. To stvara nove, pravilno hostirane indekse koji ubrzavaju vrijeme odgovora na upite.
6.3 Sigurnosna kopija popravljene baze podataka
Odmah napravite potpunu sigurnosnu kopiju vaše novopopravljene baze podataka:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Opcija CHECKSUM provjerava integritet sigurnosne kopije tijekom operacije. Nakon toga testirajte sigurnosnu kopiju na testnom poslužitelju kako biste bili sigurni da ispravno radi prije nego što je upotrijebite za oporavak proizvodnje.
6.4 Postavljanje nadzora i upozorenja
Proaktivno praćenje pomaže u otkrivanju potencijalnih problema prije nego što oštete podatke. Postavite upozorenja za ključne metrike uključujući:
- CPU postotak (prag: 90%)
- Postotak iskorištenog podatkovnog prostora (prag: 95%)
- Upotreba radnika (prag: 60%)
- Zastoji (bilo koja pojava)
- Sistemske greške u pokušajima povezivanja
Azure Monitor ili SQL Server Management Studio može konfigurirati ova upozorenja. Upozorenja o stanju ostaju aktivirana dok se ne riješe, što sprječava oluje obavijesti tijekom tekućih problema.
Tjedne provjere integriteta pomoću DBCC CHECKDB trebale bi se izvoditi na kritičnim bazama podataka kako bi se rano otkrili problemi.
7. Česta pitanja
Oštećenje baze podataka stvara mnoga pitanja kod korisnika. Pogledajmo neka uobičajena pitanja o popravljanju MDF datoteka SQL Server.
7.1 Mogu li oporaviti MDF datoteku bez LDF datoteke?
Odgovor: Da, s profesionalnim alatima kao što su DataNumen SQL Recovery, možete oporaviti MDF datoteku bez LDF datoteke.
7.2 Trebam li koristiti alate za popravak trećih strana ili ugrađene metode?
Odgovor: Ugrađene metode zaslužuju prvi pokušaj jer imaju službenu podršku. Unatoč tome, alati trećih strana mogli bi oporaviti više podataka u slučajevima teške korupcije. Najbolji izbor ovisi o:
- Kritičnost podataka
- Dostupnost sigurnosne kopije
- Vremensko ograničenje
- Proračunska ograničenja
- Tolerancija rizika za gubitak podataka
8. Zaključak
SQL Server oštećenje baze podataka zahtijeva brzo otkrivanje i odgovarajuće metode oporavka kako bi se smanjio gubitak podataka. Znakovi oštećenja MDF datoteka pomažu vam da brzo djelujete kada se pojave problemi. Imate više opcija oporavka, od ugrađenih SQL Server alate za specijalizirana rješenja trećih strana poput DataNumen SQL Recovery alatU nastavku slijedi sažetak ovog članka:
Prevencija djeluje bolje nego liječenje. Redovito održavanje baze podataka, ispravni postupci sigurnosnog kopiranja i praćenje stanja diska znatno smanjuju rizike od korupcije. Sustav također treba dokazati da su oporavljene baze podataka kroz provjere integriteta i ponovne izgradnje indeksa kako bi podaci bili pouzdani nakon popravka.









