1. Razumevanje poškodb datoteke MDF
MDF datoteke so osnova za SQL Servermehanizem shranjevanja podatkov. Te kritične komponente potrebujejo hitro zaznavanje in ustrezne metode obnovitve, ko se poškodujejo, da se čim bolj zmanjša izguba podatkov. Spoznajmo datoteke MDF in kako popraviti poškodovane datoteke MDF.
1.1 V čem je datoteka MDF SQL Server?
MDF (Master Database File) služi kot glavna podatkovna datoteka v SQL Server ki hrani vse uporabniške podatke, kot so tabele, indeksi, shranjene procedure, pogledi in drugi objekti baze podatkov. Ta datoteka vsebuje tako shemo kot dejanske podatke, zaradi česar je datoteka most pomemben del katerega koli SQL Server zbirka podatkov. Pripona .mdf identificira to primarno datoteko, ki deluje skupaj z dnevniškimi datotekami (.ldf). Te dnevniške datoteke sledijo informacijam o transakcijah, ki so potrebne za obnovitvene operacije.
1.2 Pogosti vzroki za poškodbe datoteke MDF
Vaše datoteke MDF se lahko poškodujejo zaradi več razlogov:
- Izpad električne energije ali nepravilno SQL Server zaustavitve
- Napake strojne opreme, zlasti težave s podsistemom za shranjevanje
- Poškodovani sektorji na pomnilniškem pogonu
- Napadi zlonamerne programske opreme ali virusov na nezaščitene sisteme
- Napake datotečnega sistema, ki vplivajo na shranjevanje baze podatkov
- Programske napake SQL Server sam
Zrušitve sistema med aktivnimi operacijami zbirke podatkov lahko močno povečajo tveganje za okvaro, saj lahko ustavijo pomembne operacije pisanja.
1.3 Uporabni nasveti za preprečevanje poškodb datotek MDF
Tukaj je opisano, kako lahko svoje datoteke MDF zaščitite pred poškodbami:
- Ustvarite redne varnostne kopije in samodejno preverite njihovo celovitost
- Uporabite CHECKSUM kot možnost preverjanja strani za vse zbirke podatkov
- Zaženite ukaze BACKUP DATABASE s CHECKSUM
- Pridobite UPS, da se izognete nenadnim izklopom
- Pogosto preverjajte prostor na disku, da preprečite težave s shranjevanjem
- Nadgradnja SQL Server in operacijski sistem z varnostnimi popravki
- Redno izvajajte DBCC CHECKDB v vseh zbirkah podatkov
1.4 Pogosti znaki poškodovane datoteke MDF
Hitro odkrivanje poškodovane datoteke MDF vam lahko prihrani veliko časa za obnovitev. Spodaj je nekaj pogostih znakov poškodovanja datoteke MDF:
- Sporočila o napakah, ko poskušate priložiti ali dostopati do zbirke podatkov
- Baza podatkov se prikaže v načinu SUSPECT ali RECOVERY_PENDING
- V/I napake v SQL Server dnevnike, zlasti napake 823, 824 ali 825
- Napake skladnosti med operacijami baze podatkov
- Nenadne težave z delovanjem
Spodaj je nekaj pogostih sporočil o napakah, ko je datoteka MDF poškodovana:
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. Brezplačni ročni načini za popravilo datoteke MDF
SQL ServerIzvorne metode programa ponujajo brezplačne načine za popravilo poškodb datotek MDF. Ti ročni pristopi lahko rešijo baze podatkov, do katerih ne morete dostopati, vendar zahtevajo skrbno izvedbo.
2.1 Obnovitev iz nedavne varnostne kopije
Most zanesljiva metoda izterjave starts z obnovitvijo iz nedavne varnostne kopije. Ta pristop zaobide korupcijo tako, da se vrne v zdravo stanje. Uporabite lahko ukaz RESTORE DATABASE z ustreznimi parametri FROM DISK, da svojo bazo podatkov vrnete v stanje pred poškodbo. Celovitost vaših podatkov ostane nedotaknjena brez ogrožanja odnosov med objekti zbirke podatkov.
2.2 Uporabite DBCC CHECKDB z možnostmi REPAIR
DBCC CHECKDB vam nudi vgrajene zmožnosti popravljanja, če obnovitev varnostne kopije ni na voljo:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Ukaz ima tri stopnje popravila:
- REPAIR_FAST: Ohranja sintakso samo za združljivost s prejšnjimi različicami; ne popravlja
- POPRAVILO_OBNOVA: Izvaja popravila brez izgube podatkov
- REPAIR_ALLOW_DATA_LOSS: Popravi vse prijavljene napake, vendar lahko žrtvuje nekatere podatke
Imamo celovit vodnik o DBCC CHECKDB ki zajema vse možnosti in scenarije (na voljo je tudi uradna dokumentacija Microsofta tukaj).
2.3 Tveganja uporabe REPAIR_ALLOW_DATA_LOSS
Možnosti popravila so povezane s tveganjem. REPAIR_ALLOW_DATA_LOSS lahko popolnoma odstrani poškodovane strani, kar povzroči trajno izgubo podatkov. Prav tako ne upošteva omejitev tujih ključev, ki lahko prekinejo relacijsko celovitost med tabelami. Torej,
- Pred popravilom morate ročno varnostno kopirati poškodovano datoteko MDF.
- Po popravilu morate preveriti omejitve z uporabo DBCC CHECKCONSTRAINTS, da poiščete napake poslovne logike.
2.4 Uporabite DBCC CHECKTABLE
DBCC CHECKTABLE vam daje a tarpridobljen pristop za korupcijo v posebnih tabelah:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Ta ukaz pogleda eno tabelo namesto celotne zbirke podatkov. Deluje hitreje in ima manj tveganj, ko veste, katere tabele imajo težave.
2.5 Nastavite bazo podatkov na način EMERGENCY in SINGLE_USER
Močno poškodovane baze podatkov bodo morda potrebovale način V SILI kot zadnjo možnost:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Skrbniki baz podatkov dobijo dostop samo za branje prek načina v sili, če običajni dostop ne uspe. Postopek znova zgradi dnevnik transakcij, vendar izgubite doslednost transakcij in prekinete verigo RESTORE. Pred poskusom nujnih popravil varnostno kopirajte datoteke zbirke podatkov, da ohranite odprte možnosti obnovitve.
2.6 Metoda »Hack Attach«
Če ne morete priložiti poškodovane datoteke MDF SQL Server, lahko poskusite metodo »hack attach«:
- Ustvarite navidezno zbirko podatkov z istim imenom kot vaša poškodovana zbirka podatkov
- Prenesite navidezno bazo podatkov brez povezave
- Izbrišite navidezne datoteke baze podatkov
- Kopirajte poškodovano datoteko MDF na lažno lokacijo datoteke
- Prenesite bazo podatkov na splet
Ta metoda ne bo odpravila poškodbe, vendar pomaga SQL Server prepozna datoteko in omogoči ukaze za popravilo.
2.7 Popravljanje poškodovane glavne baze podatkov
Poškodba glavne baze podatkov zahteva te korake:
- Kopirajte poškodovano datoteko master.mdf kot uporabniško bazo podatkov na drug strežnik.
- Uporabite ročne metode oz. DataNumen SQL Recovery obnoviti predmete iz njega.
- Izvozite obnovljene objekte v skript.
- Obnovi glavno bazo podatkov
na originalnem strežniku.
- Zaženite skript, ustvarjen v 3. koraku, da ponovno ustvarite uporabnike in objekte.
3. Uporaba DataNumen SQL Recovery za popravilo poškodovane datoteke MDF
Če zgornje ročne metode ne uspejo, lahko poskusite s profesionalnimi orodji, kot je npr. DataNumen SQL Recovery, ki vam pomaga popraviti poškodovane datoteke MDF, ki SQL Servervgrajena orodja uporabnika ne zmorejo. Programska oprema uporablja napredne algoritme za pridobitev most podatkov iz poškodovanih datotek in ponuja številne možnosti obnovitve.
3.1 Popravite posamezno datoteko
Postopek popravljanja ene datoteke je preprost in enostaven za sledenje:
- Zaprite vse programe, ki bi lahko spremenili datoteko MDF.
- Start DataNumen SQL Recovery.
- Izberite poškodovano datoteko MDF tako, da vnesete njeno ime ali kliknete gumb za brskanje.
- Vključite vse povezane datoteke NDF, če jih potrebujete.
- Izberite izvorno obliko baze podatkov ali pustite, da jo sistem zazna:
- Izberite, kam želite shraniti obnovljeno datoteko.
- Kliknite »Start Obnovitev«, se bo programska oprema povezala z vašim SQL Server primerek z imenom vašega strežnika in podatki za prijavo.
- Nato bo programska oprema popravila vašo datoteko s svojimi naprednimi algoritmi za obnovitev.
Videli boste vrstico napredka, ki prikazuje, kako poteka popravilo. Ko je to končano, lahko pregledate svojo obnovljeno zbirko podatkov SQL Server Studio za upravljanje.
3.2 Popravite paket datotek
Podjetja z več poškodovanimi zbirkami podatkov bodo prihranila čas s paketnim popravilom. Vse svoje poškodovane datoteke MDF lahko dodate v čakalno vrsto, nastavite svoje izhodne nastavitve in start okrevanje. Ta funkcija odlično deluje v poslovnih okoljih, ki morajo odpraviti sistemske težave z bazo podatkov.
Podrobni koraki:
- Pojdite na zavihek »Paketna obnovitev«.
- Kliknite »Dodaj datoteke«, da dodate več datotek SQL Server MDF datoteke za popravilo.
- Lahko tudi kliknete »Išči datoteke«, da poiščete datoteke, ki jih želite popraviti v lokalnem računalniku.
- Kliknite »Start Gumb Obnovitev
- Vse datoteke PST na seznamu bodo popravljene ena za drugo.
3.3 Obnovitev s trdega diska, slike diska ali varnostne kopije datotek
DataNumen SQL Recovery naredi več kot standardna obnovitev. Podatke SQL lahko pridobi iz:
- Datoteke diska virtualnega stroja VMWare VMDK
- Datoteke Virtual PC VHD
- ISO slikovne datoteke
- Datoteke Windows NTBackup (.bkf)
- Datoteke Acronis True Image (.tib)
- Norton Ghost datoteke (.gho, .v2i)
Ta prilagodljivost je odličen način za povrnitev podatkov v različnih scenarijih, kot so:
- Bazo podatkov izbrišete v SQL Server.
- Formatirate trdi disk.
- Okvara trdega diska.
- Navidezni disk v VMWare ali Virtual PC je poškodovan ali poškodovan in na njem shranjujete bazo podatkov.
- Datoteka varnostne kopije na mediju za varnostno kopijo je poškodovana in iz nje ne morete obnoviti datoteke baze podatkov.
- Datoteka s sliko diska je poškodovana in iz nje ne morete obnoviti datoteke MDF.
V zgornjih primerih si morda še vedno lahko opomorete SQL Server podatke s trdega diska, sliko diska ali varnostne kopije neposredno.
Če imate sliko diska ali varnostne kopije pri roki, lahko naredite naslednje:
- Kliknite gumb “…”, da izberete izvorno datoteko.
- V pogovornem oknu »Odpri datoteko« kot filter izberite »Vse datoteke (*.*)«.
- Izberite sliko diska ali varnostno kopijo kot izvorno datoteko, ki jo želite popraviti.
- Nastavite ime datoteke izhodne fiksne baze podatkov, kot je E_Drive_fixed.mdf.
Če želite obnoviti neposredno s trdega diska, lahko uporabite DataNumen Disk Image ustvarite slikovno datoteko trdega diska kot izvorno datoteko DataNumen SQL Recovery:
- Izberite trdi disk ali disk.
- Nastavite ime izhodne slikovne datoteke.
- Kliknite »Start Cloning«, da ustvarite slikovno datoteko diska s trdega diska/diska.
3.4 Obnovitev izbrisanih zapisov in tabel
Če pomotoma izbrišete nekaj zapisov v tabeli ali nekaj tabel v zbirki podatkov, jih lahko obnovite z DataNumen SQL Recovery.
Za izbrisane zapise morda ne bodo prikazani v enakem vrstnem redu kot pred brisanjem, zato boste po obnovitvi morda morali uporabiti stavke SQL za iskanje teh izbrisanih zapisov.
Če izbrisanih tabel ne bo mogoče obnoviti, jih bodo preimenovali v »Recovered_Table1«, »Recovered_Table2« itd.
3.5 Obnovitev po izsiljevalski programski opremi ali virusu
Standardne metode običajno ne uspejo popraviti zbirk podatkov, šifriranih z zlonamerno programsko opremo. DataNumen SQL Recovery izkorišča posebne algoritme za pridobivanje podatkov iz datotek MDF, šifriranih z izsiljevalsko programsko opremo, brez plačila napadalcem. Programska oprema lahko obnovi datoteke, tudi če je šifriranje poškodovalo njihove glave ali notranje strukture.
3.6 Popravite obnovljeno datoteko
Če je datoteke MDF obnovil DataNumen Data Recovery (ali drugih orodij za obnovitev podatkov) ni mogoče priložiti SQL Server, so te datoteke morda še vedno poškodovane. V takem primeru uporabite DataNumen SQL Recovery da jih znova popravimo, da zagotovimo dostopnost njihovih podatkov v SQL Server.
3.7 Obnovitev iz datoteke tempdb.mdf
Kdaj SQL Server se izvaja, bo shranil ves temporary podatki, vključno z vsem tempomrary tabele in shranite postopke v temporary baza podatkov, imenovana tempdb.mdf. Če pride do katastrofe s podatki, če ne morete obnoviti želenih podatkov iz obstoječih datotek mdf in z njimi povezanih datotek ndf, boste morda še vedno lahko obnovili podatke iz tempdb.mdf z uporabo DataNumen SQL Recovery, kot sledi:
- stop SQL Server Storitev Data Engine.
- Uporaba funkcije iskanja v sistemu Windows za iskanje datoteke tempdb.mdf v računalniku, kjer je SQL Server primerek nameščen.
- Ko najdete datoteko tempdb.mdf, jo lahko izberete kot izvorno datoteko, ki jo želite obnoviti, in jo uporabite DataNumen SQL Recovery da ga obnovim.
3.8 vzorčne datoteke
SQL Server različica | Poškodovana datoteka MDF | Datoteko MDF je popravil DataNumen SQL Recovery |
SQL Server 2014 | Napaka1_4.mdf | Napaka1_4_fixed.mdf |
SQL Server 2014 | Napaka2_4.mdf | Napaka2_4_fixed.mdf |
SQL Server 2014 | Napaka4_4.mdf | Napaka4_4_fixed.mdf |
SQL Server 2014 | Napaka5_4.mdf | Napaka5_4_fixed.mdf |
4. Storitve spletne obnovitve
Spletne storitve vam ponujajo drugačen način za popravilo SQL podatkovnih baz, ko prenos in namestitev programske opreme za obnovitev ni mogoča ali priročna. Te spletne storitve pomagajo popraviti poškodovane datoteke MDF brez potrebe po poglobljenem tehničnem znanju.
4.1 Preprosti obnovitveni postopki
Spletne storitve obnovitve SQL sledijo postopku, ki je enostaven za uporabo:
- Naložite poškodovano datoteko – Vaša poškodovana datoteka MDF se varno prenese na strežnik ponudnika storitev prek šifrirane povezave
- Obdelava in analiza – Storitev skenira vašo datoteko s posebnimi algoritmi in identificira podatke, ki jih je mogoče obnoviti
- Predogled rezultatov obnovitve – Objekte baze podatkov, ki jih je mogoče obnoviti, si lahko predogledate, preden se zavežete k popolni obnovitvi
- Prenesite popravljeno datoteko – Popravljena datoteka baze podatkov ali skripti SQL postanejo na voljo po obdelavi
Te storitve v oblaku delujejo z SQL Server datoteke zbirk podatkov, kot so .mdf, .ndf in .ldf. Velikost datoteke in resnost poškodbe določata čas obdelave, ki se giblje od sekund do minut.
4.2 prednosti in slabosti
Prednosti spletne obnovitve:
- Ni vam treba namestiti programske opreme – kot nalašč za omejena okolja ali uporabnike brez skrbniških pravic
- Deluje na vseh operacijskih sistemih, vključno z macOS in Linux
- Pripravljen za uporabo brez nalaganja velikih programskih paketov
- Uporabniku prijazen vmesnik je primeren za ljudi z osnovnimi tehničnimi znanji
- Podatke, ki jih je mogoče obnoviti, si lahko ogledate pred nakupom
Omejitve, o katerih je treba razmišljati:
- Nalaganje občutljivih podatkov baze podatkov na strežnike tretjih oseb povzroča pomisleke glede zasebnosti
- Največja velikost baze podatkov ima omejitve
- Manj možnosti prilagajanja kot orodja brez povezave
- Hitrost obnovitve je odvisna od zmogljivosti in obremenitve strežnika
- Demo različice do nakupa prikazujejo le nekatere podatke, ki jih je mogoče obnoviti
Orodja za obnovitev brez povezave vam omogočajo več nadzora in zasebnosti, vendar potrebujejo več tehničnega znanja. Most spletne storitve vam omogočajo, da preizkusite njihovo učinkovitost z brezplačnimi predstavitvami. Te predstavitve obnovijo vzorčne podatke in označijo druge elemente, ki jih je mogoče obnoviti, z ogradami.
Najboljša izbira med spletno in nespletno obnovitvijo je odvisna od vaših potreb. Časovni pritisk, tehnične spretnosti, občutljivost podatkov in vrsta poškodovane datoteke MDF igrajo pomembno vlogo pri tej odločitvi.
5. Več rešitev
Medtem ko metode, obravnavane v prejšnjih razdelkih, obravnavajo most V primerih poškodb datotek MDF ponuja okolje za obnovitev baz podatkov dodatne specializirane rešitve. Ocenili smo številne pristope in zbrali ta obsežen seznam most učinkovite alternativne metode ki dopolnjujejo ključne strategije popravil.
6. Po popravilu: Preverite in zavarujte svojo bazo podatkov
Popravilo vaše poškodovane datoteke MDF reši le polovico težave. Vašo zbirko podatkov je treba po uspešni obnovitvi dokazati pravilno in zavarovati, da ohranite celovitost podatkov in preprečite prihodnje težave.
6.1 Preverjanje celovitosti obnovljenih podatkov
Podroben validacijski pregled zagotavlja, da vsi podatki po popravilu ostanejo nedotaknjeni. Ukaz DBCC CHECKDB z DATA_PURITY išče neveljavne vrednosti:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Ta ukaz odkrije vrednosti stolpcev, ki so morda neveljavne ali izven obsega za njihove vrste podatkov. Upoštevajte, da morate vse odkrite napake popraviti ročno, saj jih možnosti popravila ne morejo popraviti samodejno.
DBCC CHECKCONSTRAINTS pomaga preveriti, ali poslovna logika ostane nedotaknjena, ker operacije popravljanja ne preverjajo ali vzdržujejo omejitev tujih ključev.
6.2 Obnova indeksov in omejitev
Optimizacija zmogljivosti postane naslednji korak, ko se preveri celovitost podatkov. Operacije popravil pogosto pustijo indekse razdrobljene, kar zahteva hitro pozornost:
ALTER INDEX ALL ON table_name REBUILD;
Osrednja ekipa bi morala najprej znova zgraditi specifične visokouporabne indekse, da hitro obnovi delovanje kritičnih sistemov. To ustvarja nove, pravilno hosted indeksi, ki boost odzivni časi poizvedbe.
6.3 Varnostno kopiranje popravljene baze podatkov
Takoj ustvarite popolno varnostno kopijo svoje na novo popravljene baze podatkov:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Možnost CHECKSUM preveri celovitost varnostne kopije med operacijo. Kasneje preizkusite varnostno kopijo na testnem strežniku, da zagotovite pravilno delovanje, preden jo uporabite za obnovitev proizvodnje.
6.4 Nastavitev spremljanja in opozoril
Proaktivno spremljanje pomaga odkriti morebitne težave, preden poškodujejo podatke. Nastavite opozorila za ključne meritve, vključno z:
- Odstotek procesorja (prag: 90 %)
- Odstotek uporabljenega podatkovnega prostora (prag: 95 %)
- Uporaba delavcev (prag: 60 %)
- Zastoji (poljubni pojavi)
- Sistemske napake pri poskusih povezave
Azure Monitor oz SQL Server Management Studio lahko konfigurira ta opozorila. Opozorila s stanjem ostanejo sprožena, dokler niso razrešena, kar preprečuje nevihte obvestil med tekočimi težavami.
Tedenska preverjanja celovitosti z uporabo DBCC CHECKDB bi se morala izvajati v kritičnih zbirkah podatkov, da bi zgodaj odkrili težave.
7. Pogosta vprašanja
Poškodba baze podatkov ustvarja veliko vprašanj uporabnikov. Oglejmo si nekaj pogostih vprašanj o popravljanju datotek MDF v SQL Server.
7.1 Ali lahko obnovim datoteko MDF brez datoteke LDF?
Odgovor: Da, s profesionalnimi orodji, kot so DataNumen SQL Recovery, lahko obnovite datoteko MDF brez datoteke LDF.
7.2 Ali naj uporabljam orodja za popravilo drugih proizvajalcev ali vgrajene metode?
Odgovor: Vgrajene metode si zaslužijo prvi poskus, saj imajo uradno podporo. Kljub temu lahko orodja drugih ponudnikov v primerih hude korupcije obnovijo več podatkov. Najboljša izbira je odvisna od:
- Kritičnost podatkov
- Razpoložljivost varnostne kopije
- Časovne omejitve
- Proračunske omejitve
- Toleranca tveganja za izgubo podatkov
8. Zaključek
SQL Server poškodovanje baze podatkov zahteva hitro odkrivanje in ustrezne metode obnovitve, da se zmanjša izguba podatkov. Znaki poškodovanosti datoteke MDF vam pomagajo hitro ukrepati, ko se pojavijo težave. Na voljo imate več možnosti obnovitve, od vgrajenih SQL Server orodja za specializirane rešitve tretjih oseb, kot so DataNumen SQL Recovery orodjeSpodaj je povzetek tega članka:
Preventiva deluje bolje kot kurativa. Redno vzdrževanje baz podatkov, pravilni postopki varnostnega kopiranja in spremljanje zdravja diska bistveno zmanjšajo tveganja korupcije. Sistem mora prav tako dokazati obnovljene baze podatkov s preverjanjem celovitosti in vnovično izgradnjo indeksov, da ohrani zanesljivost podatkov po popravilih.