1. Forståelse af MDF-filkorruption
MDF-filer er grundlaget for SQL Servers datalagringsmekanisme. Disse kritiske komponenter kræver hurtig detektion og korrekte gendannelsesmetoder, når de bliver beskadiget, for at minimere datatab. Lad os lære om MDF-filer og hvordan man reparerer beskadigede MDF-filer.
1.1 Hvad er en MDF-fil i SQL Server?
MDF (Master Database File) fungerer som hoveddatafilen i SQL Server der indeholder alle brugerdata såsom tabeller, indekser, lagrede procedurer, visninger og andre databaseobjekter. Denne fil har både skemaet og faktiske data, hvilket gør den til most vigtig del af evt SQL Server database. .mdf-udvidelsen identificerer denne primære fil, der fungerer sammen med logfiler (.ldf). Disse logfiler sporer transaktionsoplysninger, der er nødvendige for gendannelsesoperationer.
1.2 Almindelige årsager til MDF-filkorruption
Dine MDF-filer kan blive ødelagt af flere årsager:
- Strømafbrydelser eller forkert SQL Server nedlukninger
- Hardwarefejl, især problemer med lagerundersystem
- Dårlige sektorer på lagerdrevet
- Malware eller virusangreb på ubeskyttede systemer
- Filsystemfejl, der påvirker databaselagring
- Software fejler ind SQL Server selv
Systemnedbrud under aktive databaseoperationer kan øge risikoen for korruption meget, fordi de kan stoppe vigtige skriveoperationer.
1.3 Nyttige tips til at forhindre MDF-filkorruption
Sådan kan du beskytte dine MDF-filer mod korruption:
- Opret regelmæssige sikkerhedskopier og kontroller deres integritet automatisk
- Brug CHECKSUM som indstillingen Sidebekræftelse for alle databaser
- Kør BACKUP DATABASE-kommandoer med CHECKSUM
- Få en UPS for at undgå pludselige nedlukninger
- Tjek diskplads ofte for at forhindre lagerproblemer
- Opdatering SQL Server og operativsystemet med sikkerhedsrettelser
- Kør DBCC CHECKDB regelmæssigt på alle databaser
1.4 Almindelige tegn på en beskadiget MDF-fil
Hurtig påvisning af MDF-filkorruption kan spare dig for masser af retableringstid. Nedenfor er nogle af de almindelige tegn på MDF-filkorruption:
- Fejlmeddelelser, når du forsøger at vedhæfte eller få adgang til databasen
- Databasen vises i tilstanden SUSPECT eller RECOVERY_PENDING
- I/O fejl i SQL Server logfiler, især fejl 823, 824 eller 825
- Konsistensfejl under databaseoperationer
- Pludselige præstationsproblemer
- SQL Server fejl 5171 eller 5172 ved tilknytning af databaser
1.5 Brug af DBCC CHECKDB til at opdage korruption
DBCC CHECKDB hjælper dig med at fange databasekorruption tidligt:
DBCC CHECKDB (database_name) WITH NO_INFOMSGS
Denne kommando kører komplette kontroller, herunder:
- Kontrol af logisk og fysisk integritet for alle objekter
- Test af indeksstrukturer og sidelinks
- Verifikation af tildelingskonsistens på tværs af databasen
At køre denne kommando ugentligt eller dagligt for kritiske systemer hjælper dig med at fange korruption tidligt og giver dig flere muligheder for at genoprette.
2. Ved brug af DataNumen SQL Recovery at reparere korrupte MDF-filer
DataNumen SQL Recovery hjælper dig med at reparere beskadigede MDF-filer SQL Server's indbyggede værktøjer kan ikke håndtere. Softwaren bruger avancerede algoritmer til at få most data muligt fra korrupte filer og giver dig mange gendannelsesmuligheder.
2.1 Reparer en enkelt fil
Enkeltfil reparationsprocessen er ligetil og nem at følge:
- Luk alle programmer, der kan ændre MDF-filen.
- Start DataNumen SQL Recovery.
- Vælg den beskadigede MDF-fil ved at skrive dens navn eller klikke på knappen Gennemse.
- Inkluder eventuelle relaterede NDF-filer, hvis du har brug for dem.
- Vælg kildedatabaseformatet, eller lad systemet registrere det:
- Vælg, hvor du vil gemme den gendannede fil.
- Klik på “Start Recovery”-knappen, vil softwaren oprette forbindelse til din SQL Server instans med dit servernavn og loginoplysninger.
- Så vil softwaren rette din fil med dens avancerede gendannelsesalgoritmer.
Du vil se en statuslinje, der viser, hvordan reparationen forløber. Når det er gjort, kan du inspicere din gendannede database i SQL Server ManagementStudio.
2.2 Reparer en batch af filer
Virksomheder med flere korrupte databaser vil spare tid med batch reparation. Du kan tilføje alle dine beskadigede MDF-filer til en kø, indstille dine outputpræferencer og start opsvinget. Denne funktion fungerer godt i forretningsmiljøer, der skal løse systemiske databaseproblemer.
Detaljerede trin:
- Gå til fanen "Batch Recovery".
- Klik på "Tilføj filer" for at tilføje flere SQL Server MDF-filer, der skal repareres.
- Du kan også klikke på "Søg filer" for at finde filer, der skal repareres på den lokale computer.
- Klik på “Start Recovery”-knap
- Alle PST-filer på listen vil blive repareret én efter én.
2.3 Gendan fra harddisk, diskbillede eller sikkerhedskopifiler
DataNumen SQL Recovery gør mere end standardgendannelse. Det kan hente SQL-data fra:
- VMWare VMDK virtuelle maskine diskfiler
- Virtual PC VHD-filer
- ISO billedfiler
- Windows NTBackup-filer (.bkf)
- Acronis True Image-filer (.tib)
- Norton Ghost filer (.gho, .v2i)
Denne fleksibilitet er en fantastisk måde at få dine data tilbage på forskellige scenarier, såsom:
- Du sletter databasen i SQL Server.
- Du formaterer harddisken.
- Harddiskfejl.
- Den virtuelle disk i VMWare eller Virtual PC er korrupt eller beskadiget, og du gemmer databasen på den.
- Sikkerhedskopieringsfilen på sikkerhedskopieringsmediet er korrupt eller beskadiget, og du kan ikke gendanne databasefilen fra den.
- Diskbilledfilen er korrupt eller beskadiget, og du kan ikke gendanne din MDF-fil fra den.
I ovenstående tilfælde kan du muligvis stadig komme dig SQL Server data fra harddisken, diskbilledet eller backupfilerne direkte.
Hvis du har diskbilledet eller backupfilerne ved hånden, kan du gøre som følger:
- Klik på knappen "..." for at vælge kildefilen.
- I dialogboksen "Åbn fil" skal du vælge "Alle filer (*.*)" som filter.
- Vælg diskbilledet eller backupfilen som kildefilen, der skal repareres.
- Indstil outputtet fast database filnavn, såsom E_Drive_fixed.mdf.
Hvis du vil gendanne fra en harddisk direkte, kan du bruge DataNumen Disk Image for at oprette en diskbilledfil af harddisken som kildefilen i DataNumen SQL Recovery:
- Vælg harddisken eller disken.
- Indstil outputbilledets filnavn.
- Klik på “Start Kloning"-knappen for at oprette diskbilledfilen fra harddisken/disken.
2.4 Gendan fra Ransomware eller Virus
Standardmetoder kan normalt ikke reparere databaser, der er krypteret med malware. DataNumen SQL Recovery udnytter specielle algoritmer til at hente data fra ransomware-krypterede MDF-filer uden at betale angribere. Softwaren kan gendanne filer, selv efter kryptering har beskadiget deres overskrifter eller interne strukturer.
2.5 Reparer en gendannet fil
Hvis MDF-filer gendannes af DataNumen Data Recovery (eller andre datagendannelsesværktøjer) kan ikke tilsluttes SQL Server, kan disse filer stadig have en vis korruption. Brug i et sådant tilfælde DataNumen SQL Recovery at reparere dem igen for at sikre, at deres data er tilgængelige i SQL Server.
2.6 Gendannelse fra tempdb.mdf
Hvornår SQL Server kører, gemmer det hele tempoetrary-data, inklusive alt temporary tabeller og gemme procedurer i et temporary-databasen kaldet tempdb.mdf. Når der opstår datakatastrofe, hvis du ikke kan gendanne ønskede data fra de eksisterende mdf og tilknyttede ndf-filer, kan du muligvis stadig gendanne dine data fra tempdb.mdf ved hjælp af DataNumen SQL Recovery, som følger:
- Stands SQL Server Datamotortjeneste.
- Brug af Windows-søgefunktionen til at søge efter tempdb.mdf-fil på den computer, hvor SQL Server instans er installeret.
- Når du har fundet tempdb.mdf, kan du vælge den som kildefilen, der skal gendannes, og bruge DataNumen SQL Recovery at gendanne det.
3. Manuelle metoder til at reparere MDF-filer
SQL Server's native metoder tilbyder gratis alternativer til at reparere MDF-filkorruption. Disse manuelle tilgange kan redde databaser, som du ikke har adgang til, men de kræver omhyggelig udførelse.
3.1 Gendan fra en nylig sikkerhedskopi
Most pålidelig gendannelsesmetode starts med gendannelse fra en nylig sikkerhedskopi. Denne tilgang omgår korruption ved at gå tilbage til en sund tilstand. Du kan bruge kommandoen RESTORE DATABASE med de rigtige FROM DISK-parametre til at bringe din database tilbage til dens tilstand før korruption. Din dataintegritet forbliver intakt uden at kompromittere forholdet mellem databaseobjekter.
3.2 Brug DBCC CHECKDB med REPAIR-indstillinger
DBCC CHECKDB giver dig indbyggede reparationsfunktioner, hvis backupgendannelse ikke er en mulighed:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Kommandoen har tre reparationsniveauer:
- REPAIR_FAST: Beholder kun syntaks for bagudkompatibilitet; laver ingen reparationer
- REPAIR_REBUILD: Foretager reparationer uden datatab
- REPAIR_ALLOW_DATA_LOSS: Retter alle rapporterede fejl, men kan ofre nogle data
3.3 Risici ved brug af REPAIR_ALLOW_DATA_LOSS
Reparationsmuligheder indebærer risici. REPAIR_ALLOW_DATA_LOSS kan fjerne korrupte sider fuldstændigt, hvilket fører til permanent datatab. Den ignorerer også fremmednøglebegrænsninger, som kan ødelægge den relationelle integritet mellem tabeller. Så,
- Før reparationen bør du manuelt sikkerhedskopiere din korrupte MDF-fil.
- Efter reparationen bør du verificere begrænsninger ved hjælp af DBCC CHECKCONSTRAINTS for at finde fejl i forretningslogikken.
3.4 Brug DBCC CHECKTABLE
DBCC CHECKTABLE giver dig en tarfå tilgang til korruption i specifikke tabeller:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Denne kommando ser på én tabel i stedet for hele databasen. Det kører hurtigere og har færre risici, når du først ved, hvilke borde der har problemer.
3.5 Indstil databasen til NØD- og ENKELTBRUGER-tilstand
Alvorligt beskadigede databaser kan have brug for NØD-tilstand som en sidste mulighed:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Databaseadministratorer får skrivebeskyttet adgang via nødtilstand, hvis normal adgang mislykkes. Processen genopbygger transaktionsloggen, men du mister transaktionskonsistensen og bryder GENDANNELSE-kæden. Sikkerhedskopier dine databasefiler, før du prøver nødreparationer for at holde dine gendannelsesmuligheder åbne.
3.6 “Hack Attach”-metoden
Hvis du ikke kan vedhæfte en beskadiget MDF-fil i SQL Server, kan du prøve "hack attach"-metoden:
- Opret en dummy-database med samme navn som din beskadigede database
- Tag dummy-databasen offline
- Slet dummy-databasefilerne
- Kopier din beskadigede MDF-fil til dummy-filplaceringen
- Bring databasen online
Denne metode løser ikke korruption, men hjælper SQL Server genkend filen og aktiverer reparationskommandoer.
3.7 Ret en beskadiget masterdatabase
Masterdatabasekorruption kræver disse trin:
- Kopier den beskadigede master.mdf-fil som en brugerdatabase til en anden server.
- Brug DataNumen SQL Recovery eller manuelle metoder ovenfor for at gendanne objekter fra den.
- Eksporter de gendannede objekter til et script.
- Genopbyg masterdatabasen
på den oprindelige server.
- Kør scriptet, der blev genereret i trin 3, for at genskabe brugere og objekter.
4. Ret diskfejl, der forårsager MDF-filkorruption
SQL Server afhænger i høj grad af disk og filsystem for at gemme og hente data. Så disk- eller filsystemfejl fører ofte til MDF-filkorruption, der SQL Server Værktøjer kan ikke løse det alene. Du skal løse disse problemer, før du bruger manuelle reparationsmetoder in SQL ServerNedenfor er nogle værktøjer, der udfører denne opgave.
4.1 CHKDSK
CHKDSK (Check Disk) er et vigtigt Windows-værktøj, der registrerer og reparerer filsystemfejl, som kan ødelægge dine MDF-filer. Dette kommandolinjeværktøj kommer ind på diske for at finde dårlige sektorer, lost klynger, krydsbundne filer og mappefejl, der kan påvirke SQL Server databasefiler.
Du kan køre CHKDSK på drevet med din beskadigede MDF-fil. Mere detaljerede oplysninger kan findes på Microsofts officielle hjemmeside .
Mange tidligere utilgængelige MDF-filer bliver tilgængelige igen efter at have kørt CHKDSK. Denne proces forhindrer også fremtidig korruption ved at rette rodårsagen på diskniveau.
Databaseadministratorer bør køre CHKDSK, før de prøver andre reparationsmetoder, hvis deres SQL Server databaser viser I/O-fejl (som fejl 15105). Denne tilgang forbedrer restitutionsmulighederne væsentligt.
4.2 Diskdiagnoseostic-værktøjer
I moderne Windows-versioner inkluderer CHKDSK nu funktionaliteten til at scanne og diagnosticere diske. Nogle databaseadministratorer foretrækker dog at bruge dedikeret diskdiagnose.ostic-værktøjer for at få bedre resultater og et fuldt billede af diskens tilstand. Desuden vil disse værktøjer give mere detaljerede rapporter end CHKDSK.
Sådan analyserer du din disk:
- Brug producentens diskdiagnoseostic værktøjer
- Kør overfladescanningstests for at identificere og markere dårlige sektorer
- Udfør fejlretningsrutiner, der er specifikke for din lagerhardware
Nedenfor er en liste over diskdiagnoserostic-værktøjer fra de største producenter:
Værktøj | Disk | Fejlregistrering | Auto Fix |
---|---|---|---|
SeaTools | Seagate harddiske/SSD'er | ✅ | ⚠️ (begrænset) |
WD Dashboard | WD SSD'er | ✅ | ⚠️ |
Datalivredder | WD HDD'er | ✅ | ⚠️ |
Samsung Trollkarl | Samsung SSD'er | ✅ | ⚠️ |
Intel MAS-værktøj | Intel SSD'er | ✅ | ⚠️ |
Afgørende leder | Crucial (Micron) SSD'er | ✅ | ⚠️ |
Kingston-chef | Kingston SSD'er | ✅ | ⚠️ |
SanDisk Dashboard | SanDisk SSD'er | ✅ | ⚠️ |
Legende:
✅ = Understøttet
⚠️ = Begrænset automatisk rettelse, mostgennem sektoromlægning eller interne firmwarerutiner
Enterprise storage-systemer har brug for ekstra opmærksomhed. Ud over simple disktjek bør du se på diskcontrollere, kommunikationslinjer og hele diskundersystemet. Problemer hvor som helst i denne kæde kan ødelægge din database.
Løsning af problemer på diskniveau giver først SQL Server's reparationsmetoder en bedre chance for at lykkes. Denne systematiske tilgang løser ofte korruptionsscenarier uden brug af tredjepartsværktøjer.
5. Onlinegendannelsestjenester
Onlinetjenester giver dig en anden måde at reparere SQL-databaser på, når det ikke er muligt eller praktisk at downloade og installere gendannelsessoftware. Disse onlinetjenester hjælper med at reparere beskadigede MDF-filer uden behov for dybdegående teknisk viden.
5.1 Simple gendannelsesprocedurer
Online SQL-gendannelsestjenester følger en letanvendelig proces:
- Upload den beskadigede fil – Din beskadigede MDF-fil overføres sikkert til tjenesteudbyderens server via en krypteret forbindelse
- Bearbejdning og analyse – Tjenesten scanner din fil med specialiserede algoritmer og identificerer gendannes data
- Forhåndsvisning af genoprettelsesresultater – Du kan forhåndsvise genskabelige databaseobjekter, før du forpligter dig til fuld gendannelse
- Download den reparerede fil – Den reparerede databasefil eller SQL-scripts bliver tilgængelige efter behandling
Disse cloud-tjenester arbejder med SQL Server databasefiler som .mdf, .ndf og .ldf. Filstørrelse og alvorlighedsgrad af beskadigelse bestemmer behandlingstiden, som varierer fra sekunder til minutter.
5.2 Fordele og ulemper
Fordele ved onlinegendannelse:
- Du behøver ikke installere software – perfekt til begrænsede miljøer eller brugere uden administratorrettigheder
- Virker på ethvert operativsystem inklusive macOS og Linux
- Klar til brug uden at downloade store softwarepakker
- Brugervenlig grænseflade passer til folk med grundlæggende tekniske færdigheder
- Du kan se data, der kan gendannes, før du køber
Begrænsninger at tænke over:
- Upload af følsomme databaseoplysninger til tredjepartsservere giver anledning til bekymringer om privatlivets fred
- Maksimal databasestørrelse har begrænsninger
- Færre tilpasningsmuligheder end offlineværktøjer
- Gendannelseshastigheden afhænger af serverens ydeevne og belastning
- Demoversioner viser kun nogle gendannelige data indtil køb
Offline-gendannelsesværktøjer giver dig mere kontrol og privatliv, men har brug for mere teknisk ekspertise. Most onlinetjenester giver dig mulighed for at teste deres effektivitet med gratis demoer. Disse demoer gendanner prøvedata og markerer andre gendannelige elementer med pladsholdere.
Det bedste valg mellem online- og offlinegendannelse afhænger af dine behov. Tidspres, tekniske færdigheder, datafølsomhed og typen af MDF-filkorruption spiller alle vigtige roller i denne beslutning.
6. Efter reparation: Valider og sikr din database
Reparation af din korrupte MDF-fil løser kun halvdelen af problemet. Din database skal bevise rigtig og sikre efter vellykket gendannelse for at bevare dataintegriteten og stoppe fremtidige problemer.
6.1 Kontrollér integriteten af gendannede data
Et detaljeret valideringstjek sikrer, at alle data forbliver intakte efter reparation. DBCC CHECKDB-kommandoen med DATA_PURITY scanner for ugyldige værdier:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Denne kommando finder kolonneværdier, der kan være ugyldige eller uden for rækkevidde for deres datatyper. Husk, at du skal rette eventuelle opdagede fejl manuelt, da reparationsmuligheder ikke kan rette dem automatisk.
DBCC CHECKCONSTRAINTS hjælper med at bekræfte, at forretningslogikken forbliver intakt, fordi reparationsoperationer ikke kontrollerer eller vedligeholder fremmednøglebegrænsninger.
6.2 Genopbyg indekser og begrænsninger
Ydeevneoptimering bliver næste trin, når dataintegriteten tjekkes ud. Reparationsoperationer efterlader ofte indekser fragmenterede, hvilket kræver hurtig opmærksomhed:
ALTER INDEX ALL ON table_name REBUILD;
Kerneteamet bør først genopbygge specifikke højbrugsindekser for hurtigt at genoprette ydeevnen på kritiske systemer. Dette skaber nye, korrekt hosted indekserer, at boost forespørgsels svartider.
6.3 Sikkerhedskopier den reparerede database
Opret en komplet sikkerhedskopi af din nyligt reparerede database med det samme:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Indstillingen CHECKSUM kontrollerer backup-integriteten under operationen. Test sikkerhedskopien på en testserver bagefter for at sikre, at den fungerer korrekt, før du bruger den til produktionsgendannelse.
6.4 Opsæt overvågning og advarsler
Proaktiv overvågning hjælper med at opdage potentielle problemer, før de korrumperer data. Konfigurer underretninger for vigtige metrics, herunder:
- CPU-procent (grænse: 90 %)
- Dataplads brugt procent (grænse: 95 %)
- Arbejderforbrug (tærskel: 60 %)
- Deadlocks (enhver forekomst)
- Systemfejl i forbindelsesforsøg
Azure Monitor eller SQL Server Management Studio kan konfigurere disse advarsler. Stateful alarmer forbliver udløst, indtil de er løst, hvilket forhindrer notifikationsstorme under igangværende problemer.
Ugentlig integritetskontrol ved hjælp af DBCC CHECKDB bør køre på kritiske databaser for at fange problemer tidligt.
7. Ofte stillede spørgsmål
Databasekorruption skaber mange spørgsmål fra brugerne. Lad os se på nogle almindelige spørgsmål om reparation af MDF-filer i SQL Server.
7.1 Kan jeg gendanne MDF-filen uden LDF-filen?
Svar: Ja, med professionelle værktøjer som f.eks. DataNumen SQL Recovery, kan du gendanne MDF-filer uden LDF-filer.
7.2 Skal jeg bruge reparationsværktøjer fra tredjepart eller indbyggede metoder?
Svar: Indbyggede metoder fortjener et første forsøg, da de har officiel support. På trods af dette kan tredjepartsværktøjer muligvis gendanne flere data i alvorlige tilfælde af korruption. Det bedste valg afhænger af:
- Datakriticitet
- Tilgængelighed af backup
- Tidsbegrænsninger
- Budgetbegrænsninger
- Risikotolerance for tab af data
8. konklusion
SQL Server Databasekorruption kræver hurtig opdagelse og korrekte gendannelsesmetoder for at minimere tab af data. MDF-filkorruptionstegn hjælper dig med at handle hurtigt, når der opstår problemer. Du har flere gendannelsesmuligheder, fra indbygget SQL Server værktøjer til specialiserede tredjepartsløsninger som f.eks. DataNumen SQL Recovery værktøjNedenfor er et resumé af denne artikel:
Forebyggelse virker bedre end helbredelse. Regelmæssig databasevedligeholdelse, korrekte sikkerhedskopieringsprocedurer og overvågning af disksundhed reducerer korruptionsrisici væsentligt. Systemet skal også bevise gendannede databaser gennem integritetstjek og genopbygge indekser for at holde data pålidelige efter reparationer.