1. Understanding MDF File Corruption
MDF-bestannen binne de fûneminten fan SQL Server's gegevensopslachmeganisme. Dizze krityske komponinten hawwe rappe deteksje en juste herstelmetoaden nedich as se beskeadige reitsje om gegevensferlies te minimalisearjen. Litte wy leare oer MDF-bestannen en hoe't jo beskeadige MDF-bestannen reparearje kinne.
1.1 Wat is in MDF-bestân yn SQL Server?
MDF (Master Database File) tsjinnet as it haadgegevensbestân yn SQL Server dat hâldt alle brûkersgegevens lykas tabellen, yndeksen, bewarre prosedueres, werjeften en oare databankobjekten. Dit bestân hat sawol it skema as de werklike gegevens, wêrtroch it de most wichtich part fan eltse SQL Server databank. De .mdf-útwreiding identifisearret dizze primêre triem dy't gearwurket mei lochbestannen (.ldf). Dizze logbestannen folgje transaksjeynformaasje dy't nedich is foar hersteloperaasjes.
1.2 Algemiene oarsaken fan korrupsje fan MDF-bestân
Jo MDF-bestannen kinne beskeadige wurde troch ferskate redenen:
- Stromstorings of ûnjildich SQL Server shutdowns
- Hardware flaters, benammen opslach subsysteem problemen
- Minne sektoaren op de opslach drive
- Malware of firus oanfallen op net beskerme systemen
- Bestânsysteemflaters dy't ynfloed hawwe op databankopslach
- Software bugs yn SQL Server sels
Systeemûngelokken by aktive databankoperaasjes kinne it risiko fan korrupsje in protte ferheegje, om't se wichtige skriuwoperaasjes kinne stopje.
1.3 Nuttige tips om korrupsje fan MDF-bestân te foarkommen
Hjir is hoe't jo jo MDF-bestannen kinne beskermje tsjin korrupsje:
- Meitsje reguliere backups en kontrolearje har yntegriteit automatysk
- Brûk CHECKSUM as de Page Verify-opsje foar alle databases
- Rin BACKUP DATABASE-kommando's út mei CHECKSUM
- Krij in UPS om hommelse shutdowns te foarkommen
- Kontrolearje skiifromte faak om opslachproblemen te foarkommen
- Update SQL Server en it bestjoeringssysteem mei feiligens patches
- Run DBCC CHECKDB geregeldwei op alle databases
1.4 Algemiene tekens fan in beskeadige MDF-bestân
Snelle detectie fan korrupsje fan MDF-bestân kin jo in protte hersteltiid besparje. Hjirûnder binne guon fan 'e mienskiplike tekens fan korrupsje fan MDF-bestân:
- Flaterberjochten as jo besykje taheakje of tagong te krijen ta de databank
- Databank ferskynt yn SUSPECT of RECOVERY_PENDING modus
- I/O flaters yn SQL Server logs, benammen flaters 823, 824, of 825
- Tawizingsflaters op GAM/SGAM/IAM/PFS-siden.
- Konsistinsjefouten by databankoperaasjes
- Ynienen prestaasjesproblemen
Hjirûnder binne guon fan 'e gewoane flaterberjochten as it MDF-bestân beskeadige is:
Koe gegevens foar dit fersyk net ophelje. (Microsoft.SqlServer.Management.Sdk.Sfc) xxx.mdf is gjin primêr databasebestân. (Microsoft SQL Server, Flater: 5171)
Konnektiviteit tusken databank en server 'xxx' is mislearre. (Microsoft.SqlServer.Smo) De koptekst foar bestân 'xxx.mdf' is gjin jildige koptekst foar databankbestân. De FILE SIZE-eigenskip is net korrekt. (Microsoft) SQL Server, Flater: 5172)
SQL Server ûntdutsen in logyske konsistinsje-basearre I / O flater: ferkearde kontrôlesum (ferwachte: 0x2abc3894; feitlik: 0x2ebe208e). It barde by in lêzen fan side (1:1) yn database ID 12 by offset 0x00000000002000 yn triem 'xxx.mdf'. Oanfoljende berjochten yn 'e SQL Server flater log of systeem evenemint log kin mear detail. Dit is in swiere flaterbetingsten dy't de yntegriteit fan de database bedriget en moat fuortendaliks korrizjearre wurde. Folje in folsleine databankkonsistinsjekontrôle (DBCC CHECKDB). Dizze flater kin feroarsake wurde troch in protte faktoaren; foar mear ynformaasje, sjoch SQL Server Boeken online. (Microsoft SQL Server, Flater: 824)
SQL Server in op logyske konsistinsje basearre I/O-flater ûntdutsen: skuorde side (ferwachte hantekening: 0x########; werklike hantekening: 0x#######).
2. Fergese manuele metoaden om MDF-bestân te reparearjen
SQL ServerDe native metoaden fan .com jouwe fergese metoaden om korrupsje fan MDF-bestannen te reparearjen. Dizze manuele oanpakken kinne databases rêde dy't jo net kinne berikke, mar se hawwe soarchfâldige útfiering nedich.
2.1 Weromsette fan in resinte reservekopy
De most betroubere herstel metoade starts mei weromsette fan in resinte reservekopy. Dizze oanpak omgiet korrupsje troch werom te gean nei in sûne steat. Jo kinne it kommando RESTORE DATABASE brûke mei juste FROM DISK-parameters om jo databank werom te bringen nei syn steat foar korrupsje. Jo gegevensintegriteit bliuwt yntakt sûnder relaasjes tusken databankobjekten te kompromittearjen.
2.2 Brûk DBCC CHECKDB mei REPAIR-opsjes
DBCC CHECKDB jout jo ynboude reparaasjemooglikheden as restauraasje fan reservekopy gjin opsje is:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
It kommando hat trije reparaasjenivo's:
- REPAIR_FAST: Hâldt syntaksis allinich foar efterkompatibiliteit; docht gjin reparaasjes
- REPAIR_REBUILD: Doet reparaasjes sûnder gegevensferlies
- REPAIR_ALLOW_DATA_LOSS: reparearret alle rapportearre flaters, mar kin wat gegevens opofferje
Wy hawwe in wiidweidige hantlieding oer DBCC CHECKDB dat alle opsjes en senario's beslacht (de offisjele dokumintaasje fan Microsoft is ek beskikber hjir).
2.3 Risiko's fan it brûken fan REPAIR_ALLOW_DATA_LOSS
Reparaasje opsjes komme mei risiko's. REPAIR_ALLOW_DATA_LOSS kin korrupte siden folslein fuortsmite, wat liedt ta permanint gegevensferlies. It negearret ek bûtenlânske kaaibeperkingen, dy't de relasjonele yntegriteit tusken tabellen kinne brekke. Sa,
- Foar de reparaasje moatte jo jo korrupte MDF-bestân manuell meitsje.
- Nei de reparaasje moatte jo beheiningen ferifiearje mei DBCC CHECKCONSTRAINTS om bedriuwslogyske gebreken te finen.
2.4 Brûk DBCC CHECKTABLE
DBCC CHECKTABLE jout jo in tarkrige oanpak foar korrupsje yn spesifike tabellen:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Dit kommando sjocht nei ien tabel ynstee fan de hiele databank. It rint flugger en hat minder risiko as jo witte hokker tabellen hawwe problemen.
2.5 Stel databank yn op EMERGENCY en SINGLE_USER modus
Slim beskeadige databases kinne de EMERGENCY-modus nedich wêze as lêste opsje:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Databankbehearders krije allinich-lês tagong fia Emergency Mode as normale tagong mislearret. It proses werbout it transaksjelogboek, mar jo ferlieze transaksjekonsistinsje en brekke de RESTORE-ketting. Meitsje in reservekopy fan jo databankbestannen foardat jo needreparaasjes besykje om jo herstelopsjes iepen te hâlden.
2.6 "Hack Attach"-metoade
As jo gjin beskeadige MDF-bestân taheakje kinne yn SQL Server, kinne jo de "hack attach"-metoade besykje:
- Meitsje in dummy-database mei deselde namme as jo skansearre database
- Nim de dummy-database offline
- Wiskje de dummy-databasebestannen
- Kopiearje jo skansearre MDF-bestân nei de dummy-bestânlokaasje
- Bring de databank online
Dizze metoade sil korrupsje net reparearje, mar helpt SQL Server werkenne it bestân en makket reparaasjekommando's mooglik.
2.7 Reparearje in beskeadige masterdatabase
Master databank korrupsje fereasket dizze stappen:
- Kopiearje de beskeadige master.mdf as in brûkersdatabase nei in oare server.
- Brûk de hânmjittige metoaden of DataNumen SQL Recovery objekten derfan weromhelje.
- Eksportearje de weromhelle objekten nei in skript.
- De masterdatabase opnij bouwe
op 'e orizjinele tsjinner.
- Fier it skript út dat yn stap 3 generearre is om brûkers en objekten opnij oan te meitsjen.
3. Mei help fan DataNumen SQL Recovery om korrupte MDF-bestân te reparearjen
As de boppesteande manuele metoaden mislearje, kinne jo profesjonele ark besykje, lykas DataNumen SQL Recovery, dy't jo helpt by it reparearjen fan beskeadige MDF-bestannen dy't SQL Server's ynboude ark kin net omgean. De software brûkt avansearre algoritmen om de most gegevens mooglik út skansearre triemmen en jout jo in protte hersteltiid opsjes.
3.1 Reparearje in inkele triem
It reparaasjeproses foar ien bestân is ienfâldich en maklik te folgjen:
- Slút alle programma's dy't it MDF-bestân kinne feroarje.
- Start DataNumen SQL Recovery.
- Kies it beskeadige MDF-bestân troch de namme yn te typen of op de blêdzjeknop te klikken.
- Omfetsje alle relatearre NDF-bestannen as jo se nedich binne.
- Kies it boarne databankformaat of lit it systeem it ûntdekke:
- Kies wêr't jo it herstelde bestân bewarje wolle.
- Klik op "Start Herstel" knop, sil de software ferbine mei jo SQL Server eksimplaar mei jo servernamme en ynloggegevens.
- Dan sil de software jo bestân reparearje mei har avansearre herstelalgoritmen.
Jo sille in foarútgongbalke sjen dy't sjen lit hoe't de reparaasje giet. Neidat it dien is, kinne jo jo herstelde databank ynspektearje yn SQL Server ManagementStudio.
3.2 Reparearje in batch bestannen
Bedriuwen mei ferskate korrupte databases sille tiid besparje mei batchreparaasje. Jo kinne al jo beskeadige MDF-bestannen tafoegje oan in wachtrige, jo útfierfoarkarren ynstelle, en start herstel. Dizze funksje wurket geweldich yn saaklike omjouwings dy't systemyske databaseproblemen moatte reparearje.
Detaillearre stappen:
- Gean nei de "Batch Recovery" ljepper.
- Klikje op "Triemen taheakje" om meardere ta te foegjen SQL Server MDF-bestannen te reparearjen.
- Jo kinne ek klikke op "Sykje Triemmen" om bestannen te finen dy't wurde reparearre op 'e lokale kompjûter.
- Klik op "Start Herstel” knop
- Alle PST-bestannen yn 'e list sille ien foar ien wurde repareare.
3.3 Herstel fan hurde skiif, skiifôfbylding of reservekopybestannen
DataNumen SQL Recovery docht mear as standert herstel. It kin SQL-gegevens krije fan:
- VMWare VMDK firtuele masine skiif triemmen
- Firtuele PC VHD triemmen
- ISO-ôfbyldingsbestannen
- Windows NTBackup-bestannen (.bkf)
- Acronis True Image-bestannen (.tib)
- Norton Ghost triemmen (.gho, .v2i)
Dizze fleksibiliteit is in geweldige manier om jo gegevens werom te krijen op ferskate senario's, lykas:
- Jo wiskje de databank yn SQL Server.
- Jo formatearje de hurde skiif.
- Hurde skiif flater.
- De firtuele skiif yn VMWare of Virtual PC is korrupt of skansearre en jo bewarje de databank derop.
- De reservekopy triem op de reservekopy media is korrupt of skansearre en do kinst net weromsette de databank triem út it.
- It skiifôfbyldingsbestân is korrupt of skansearre en jo kinne jo MDF-bestân der net fan weromhelje.
Yn de boppesteande gefallen, jo miskien noch by steat wêze om te herstellen SQL Server gegevens fan 'e hurde skiif, skiifôfbylding of reservekopybestannen direkt.
As jo de skiifôfbylding of reservekopybestannen by de hân hawwe, dan kinne jo it folgjende dwaan:
- Klikje op "..." knop om it boarnebestân te selektearjen.
- Selektearje yn it dialoochfinster "Bestân iepenje" "Alle bestannen (*.*)" as it filter.
- Selektearje de skiifôfbylding of reservekopybestân as it boarnebestân dat reparearre wurde moat.
- Stel de útfier fêste database triemnamme, lykas E_Drive_fixed.mdf.
As jo wolle herstellen fan in hurde skiif direkt, kinne jo brûke DataNumen Disk Image om in skiifôfbyldingsbestân fan 'e hurde skiif te meitsjen as it boarnebestân yn DataNumen SQL Recovery:
- Selektearje de hurde skiif of skiif.
- Stel de namme fan de útfierôfbylding yn.
- Klik op "Start Cloning" knop om it skiifôfbyldingsbestân te meitsjen fan 'e hurde skiif / skiif.
3.4 Wiske records en tabellen weromhelje
As jo guon records yn in tabel wiskje, of per fersin guon tabellen yn in database wiskje, kinne jo se weromhelje fia DataNumen SQL Recovery.
Foar de net wiske records kinne se miskien net yn deselde folchoarder ferskine as dat foardat se wiske wurde, dus nei it herstel moatte jo miskien SQL-útspraken brûke om dizze net-delete records te finen.
Foar de net wiske tabellen, as har nammen net kinne wurde hersteld, dan wurde se omneamd as "Recovered_Table1", "Recovered_Table2", ensafuorthinne ...
3.5 Herstel fan Ransomware as firus
Standertmetoaden mislearje gewoanlik databases fersifere troch malware te reparearjen. DataNumen SQL Recovery eksploitearret spesjale algoritmen om gegevens te krijen fan ransomware-fersifere MDF-bestannen sûnder oanfallers te beteljen. De software kin bestannen herstelle sels nei't fersifering har kopteksten of ynterne struktueren skansearre hat.
3.6 Reparearje in hersteld bestân
As MDF triemmen hersteld troch DataNumen Data Recovery (as oare ark foar gegevensherstel) kinne net yn taheakke wurde SQL Server, dizze triemmen kinne noch wat korrupsje hawwe. Yn sa'n gefal brûke DataNumen SQL Recovery om se opnij te reparearjen, om te soargjen dat har gegevens tagonklik binne yn SQL Server.
3.7 Herstel fan tempdb.mdf
Wannear SQL Server rint, sil it alle tempo opslaanrary gegevens, ynklusyf alle temporary tabellen en winkel prosedueres, yn in temporary databank neamd tempdb.mdf. As gegevensramp optreedt, as jo de winske gegevens net kinne herstellen fan 'e besteande mdf en byhearrende ndf-bestannen, kinne jo jo gegevens noch altyd weromhelje fan tempdb.mdf, troch te brûken DataNumen SQL Recovery, as folget:
- Ophâlde SQL Server Data Engine tsjinst.
- Mei help fan de Windows sykfunksje te sykjen foar tempdb.mdf triem op 'e kompjûter dêr't de SQL Server eksimplaar is ynstallearre.
- Nei't jo de tempdb.mdf fûn hawwe, kinne jo it selektearje as it boarnebestân dat weromhelle wurde moat, en brûke DataNumen SQL Recovery om it werom te heljen.
3.8 Foarbyldbestannen
SQL Server ferzje | Korrupte MDF triem | MDF triem fêst troch DataNumen SQL Recovery |
SQL Server 2014 | Error1_4.mdf | Error1_4_fixed.mdf |
SQL Server 2014 | Error2_4.mdf | Error2_4_fixed.mdf |
SQL Server 2014 | Error4_4.mdf | Error4_4_fixed.mdf |
SQL Server 2014 | Error5_4.mdf | Error5_4_fixed.mdf |
4. Online Recovery Services
Online tsjinsten jouwe jo in oare manier om SQL-databases te reparearjen as it downloaden en ynstallearjen fan herstelsoftware net mooglik of handich is. Dizze online tsjinsten helpe beskeadige MDF-bestannen te reparearjen sûnder djippe technyske kennis nedich.
4.1 Ienfâldige herstelprosedueres
Online SQL-hersteltsjinsten folgje in maklik te brûken proses:
- Upload de skansearre triem - Jo beskeadige MDF-bestân wurdt feilich oerbrocht nei de tsjinner fan 'e tsjinstferliener fia in fersifere ferbining
- Ferwurking en analyze - De tsjinst scant jo bestân mei spesjale algoritmen en identifisearret herstelbere gegevens
- Foarbyld fan herstelresultaten - Jo kinne werstelbere databankobjekten besjen foardat jo ynsette foar folslein herstel
- Download reparearre triem - It reparearre databankbestân as SQL-skripts wurde beskikber nei ferwurking
Dizze wolktsjinsten wurkje mei SQL Server databankbestannen lykas .mdf, .ndf en .ldf. Bestânsgrutte en hurdens fan korrupsje bepale de ferwurkingstiid, dy't farieart fan sekonden oant minuten.
4.2 Foar- en neidielen
Foardielen fan online herstel:
- Jo hoege gjin software te ynstallearjen - perfekt foar beheinde omjouwings as brûkers sûnder adminrjochten
- Wurket op elk bestjoeringssysteem ynklusyf macOS en Linux
- Klear om te brûken sûnder grutte softwarepakketten te downloaden
- Brûkersfreonlike ynterface past by minsken mei basis technyske feardichheden
- Jo kinne werstelbere gegevens sjen foardat jo keapje
Beperkingen om oer te tinken:
- It uploaden fan gefoelige databankynformaasje nei tsjinners fan tredden makket soargen oer privacy
- Maksimum databankgrutte hat beheiningen
- Minder oanpassingsopsjes dan offline ark
- Herstelsnelheid hinget ôf fan 'e serverprestaasjes en lading
- Demo-ferzjes toane allinich wat werom te heljen gegevens oant oankeap
Offline herstelynstruminten jouwe jo mear kontrôle en privacy, mar hawwe mear technyske saakkundigens nedich. Most online tsjinsten litte jo har effektiviteit testen mei fergese demo's. Dizze demo's herstellen samplegegevens en markearje oare werstelbere items mei plakhâlders.
De bêste kar tusken online en offline herstel komt del op jo behoeften. Tiiddruk, technyske feardichheden, gegevenssensitiviteit en it type korrupsje fan MDF-bestân spylje allegear wichtige rollen yn dit beslút.
5. Mear oplossingen
Wylst de metoaden dy't yn foargeande seksjes behannele binne, m behanneljeost MDF-bestânskorrupsjescenario's, it databaseherstellânskip biedt ekstra spesjalisearre oplossingen. Wy hawwe ferskate oanpakken evaluearre en gearstald dizze wiidweidige list fan 'e most effektive alternative metoaden dy't de kearnreparaasjestrategyen oanfolje.
6. Nei reparaasje: falidearje en befeiligje jo databank
It reparearjen fan jo beskeadige MDF-bestân lost mar de helte fan it probleem op. Jo databank moat goed bewize en befeiligje nei suksesfolle herstel om gegevensintegriteit te behâlden en takomstige problemen te stopjen.
6.1 Kontrolearje de yntegriteit fan herstelde gegevens
In detaillearre falidaasjekontrôle soarget derfoar dat alle gegevens yntakt bliuwe nei reparaasje. It kommando DBCC CHECKDB mei DATA_PURITY scant foar ûnjildige wearden:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Dit kommando fynt kolomwearden dy't miskien ûnjildich of bûten it berik binne foar har gegevenstypen. Hâld der rekken mei dat jo moatte reparearje alle ûntdutsen flaters mei de hân sûnt reparaasje opsjes kinne net reparearje se automatysk.
DBCC CHECKCONSTRAINTS helpt te ferifiearjen dat saaklike logika yntakt bliuwt, om't reparaasjeoperaasjes gjin beheiningen foar bûtenlânske kaaien kontrolearje of ûnderhâlde.
6.2 Yndeksen en beheiningen opnij opbouwe
Prestaasjeoptimalisaasje wurdt de folgjende stap as de gegevensintegriteit kontrolearret. Reparaasjeoperaasjes litte yndeksen faak fersnippere litte, wat rappe oandacht nedich is:
ALTER INDEX ALL ON table_name REBUILD;
It kearnteam moat earst spesifike yndeksen mei hege gebrûk opnij opbouwe om prestaasjes fluch te herstellen op krityske systemen. Dit skept nije, goed hosted yndeksearret dat boost query antwurd tiden.
6.3 Reservekopy fan de repareare database
Meitsje direkt in folsleine reservekopy fan jo nij reparearre databank:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
De CHECKSUM-opsje kontrolearret de yntegriteit fan reservekopy tidens de operaasje. Test de reservekopy dêrnei op in testtsjinner om te soargjen dat it goed wurket foardat it brûkt wurdt foar produksjeherstel.
6.4 Tafersjoch en warskôgings ynstelle
Proaktive tafersjoch helpt potinsjele problemen te detektearjen foardat se gegevens korrupsje. Stel warskôgings yn foar wichtige metriken ynklusyf:
- CPU persintaazje (drompel: 90%)
- Gegevensromte brûkt persintaazje (drompel: 95%)
- Wurkferbrûk (drompel: 60%)
- Deadlocks (elk foarfal)
- Systeem flaters yn ferbining besykjen
Azure Monitor of SQL Server Management Studio kin dizze warskôgings konfigurearje. Steatlike warskôgings bliuwe aktivearre oant oplost, wat notifikaasjestoarmen foarkomt by oanhâldende problemen.
Wyklikse yntegriteitskontrôles mei DBCC CHECKDB moatte rinne op krityske databases om problemen betiid te fangen.
7. FAQs
Databankkorrupsje soarget foar in protte fragen fan brûkers. Litte wy nei wat gewoane fragen sjen oer it reparearjen fan MDF-bestannen yn SQL Server.
7.1 Kin ik it MDF-bestân weromhelje sûnder it LDF-bestân?
Antwurd: Ja, mei profesjonele ark lykas DataNumen SQL Recovery, kinne jo MDF-bestân weromhelje sûnder it LDF-bestân.
7.2 Moat ik reparaasjeark fan tredden of ynboude metoaden brûke?
Antwurd: Ynboude metoaden fertsjinje de earste poging, om't se offisjele stipe hawwe. Nettsjinsteande dat kinne ark fan tredden mear gegevens weromhelje yn slimme gefallen fan korrupsje. De bêste kar hinget ôf fan:
- Krisisiteit fan gegevens
- Reservekopy beskikberens
- Tiidlimiten
- Begrutting fan budzjet
- Risikotolerânsje foar gegevensferlies
8. Konklúzje
SQL Server databankkorrupsje hat rappe deteksje en goede herstelmetoaden nedich om gegevensferlies te minimalisearjen. MDF-bestânskorrupsjetekens helpe jo fluch te hanneljen as problemen ûntsteane. Jo hawwe meardere herstelopsjes, fan ynboude SQL Server ark oant spesjalisearre oplossingen fan tredden lykas de DataNumen SQL Recovery helpmiddelHjirûnder is in gearfetting fan dit artikel:
Previnsje wurket better dan genêzen. Regelmjittich ûnderhâld fan databases, juste backupprosedueres, en tafersjoch op skiifsûnens ferminderje korrupsjerisiko's signifikant. It systeem moat ek herstelde databases direkt bewize troch yntegriteitskontrôles en yndeksen opnij op te bouwen om gegevens betrouber te hâlden nei reparaasjes.