1. Forstå MDF-filkorrupsjon
MDF-filer er grunnlaget for SQL Servers datalagringsmekanisme. Disse kritiske komponentene trenger rask deteksjon og riktige gjenopprettingsmetoder når de blir ødelagt for å minimere datatap. La oss lære om MDF-filer og hvordan du reparerer ødelagte MDF-filer.
1.1 Hva er en MDF-fil i SQL Server?
MDF (Master Database File) fungerer som hoveddatafilen i SQL Server som inneholder alle brukerdata som tabeller, indekser, lagrede prosedyrer, visninger og andre databaseobjekter. Denne filen har både skjemaet og faktiske data, noe som gjør den til most viktig del av enhver SQL Server database. .mdf-utvidelsen identifiserer denne primærfilen som fungerer sammen med loggfiler (.ldf). Disse loggfilene sporer transaksjonsinformasjon som er nødvendig for gjenopprettingsoperasjoner.
1.2 Vanlige årsaker til MDF-filkorrupsjon
MDF-filene dine kan bli ødelagt på grunn av flere årsaker:
- Strømbrudd eller feil SQL Server nedstengninger
- Maskinvarefeil, spesielt problemer med lagringsundersystem
- Dårlige sektorer på lagringsstasjonen
- Skadelig programvare eller virusangrep på ubeskyttede systemer
- Filsystemfeil som påvirker databaselagring
- Programvare bugs inn SQL Server selv
Systemkrasj under aktive databaseoperasjoner kan øke risikoen for korrupsjon mye fordi de kan stoppe viktige skriveoperasjoner.
1.3 Nyttige tips for å forhindre MDF-filkorrupsjon
Slik kan du beskytte MDF-filene dine mot korrupsjon:
- Lag regelmessige sikkerhetskopier og kontroller integriteten deres automatisk
- Bruk CHECKSUM som alternativet for sidebekreftelse for alle databaser
- Kjør BACKUP DATABASE-kommandoer med CHECKSUM
- Skaff deg en UPS for å unngå plutselige driftsstanser
- Sjekk diskplass ofte for å forhindre lagringsproblemer
- Oppdater SQL Server og operativsystemet med sikkerhetsoppdateringer
- Kjør DBCC CHECKDB regelmessig på alle databaser
1.4 Vanlige tegn på en ødelagt MDF-fil
Rask oppdagelse av MDF-filkorrupsjon kan spare deg for mye gjenopprettingstid. Nedenfor er noen av de vanlige tegnene på MDF-filkorrupsjon:
- Feilmeldinger når du prøver å legge ved eller få tilgang til databasen
- Databasen vises i SUSPECT- eller RECOVERY_PENDING-modus
- I/O-feil i SQL Server logger, spesielt feil 823, 824 eller 825
- Konsistensfeil under databaseoperasjoner
- Plutselige ytelsesproblemer
- SQL Server feil 5171 eller 5172 når du legger ved databaser
1.5 Bruke DBCC CHECKDB for å oppdage korrupsjon
DBCC CHECKDB hjelper deg med å fange databasekorrupsjon tidlig:
DBCC CHECKDB (database_name) WITH NO_INFOMSGS
Denne kommandoen kjører fullstendige kontroller, inkludert:
- Kontroller av logisk og fysisk integritet for alle objekter
- Tester av indeksstrukturer og sidekoblinger
- Verifikasjon av tildelingskonsistens på tvers av databasen
Å kjøre denne kommandoen ukentlig eller daglig for kritiske systemer hjelper deg med å fange opp korrupsjon tidlig og gir deg flere alternativer for å gjenopprette.
2. Ved hjelp av DataNumen SQL Recovery for å reparere korrupt MDF-fil
DataNumen SQL Recovery hjelper deg med å fikse skadede MDF-filer som SQL Server's innebygde verktøy kan ikke håndtere. Programvaren bruker avanserte algoritmer for å få most data mulig fra korrupte filer og gir deg mange gjenopprettingsalternativer.
2.1 Reparer en enkelt fil
Enkeltfilreparasjonsprosessen er enkel og enkel å følge:
- Lukk alle programmer som kan endre MDF-filen.
- Start DataNumen SQL Recovery.
- Velg den skadede MDF-filen ved å skrive inn navnet eller klikke på bla-knappen.
- Inkluder eventuelle relaterte NDF-filer hvis du trenger dem.
- Velg kildedatabaseformatet eller la systemet oppdage det:
- Velg hvor du vil lagre den gjenopprettede filen.
- Klikk på "Start Gjenopprett"-knappen, vil programvaren koble til din SQL Server forekomst med servernavnet og påloggingsdetaljer.
- Deretter vil programvaren fikse filen din med sine avanserte gjenopprettingsalgoritmer.
Du vil se en fremdriftslinje som viser hvordan reparasjonen går. Etter at det er gjort, kan du inspisere den gjenopprettede databasen i SQL Server ManagementStudio.
2.2 Reparer en gruppe filer
Selskaper med flere ødelagte databaser vil spare tid med batch-reparasjoner. Du kan legge til alle de skadede MDF-filene dine i en kø, angi utdatapreferanser og start utvinningen. Denne funksjonen fungerer utmerket i forretningsmiljøer som trenger å fikse systemiske databaseproblemer.
Detaljerte trinn:
- Gå til fanen "Batch Recovery".
- Klikk "Legg til filer" for å legge til flere SQL Server MDF-filer som skal repareres.
- Du kan også klikke på "Søk etter filer" for å finne filer som skal repareres på den lokale datamaskinen.
- Klikk på "Start Gjenopprett”-knappen
- Alle PST-filene på listen vil bli reparert én etter én.
2.3 Gjenopprett fra harddisk, diskbilde eller sikkerhetskopifiler
DataNumen SQL Recovery gjør mer enn standardgjenoppretting. Den kan hente SQL-data fra:
- VMWare VMDK virtuell maskin diskfiler
- Virtual PC VHD-filer
- ISO bildefiler
- Windows NTBackup-filer (.bkf)
- Acronis True Image-filer (.tib)
- Norton Ghost filer (.gho, .v2i)
Denne fleksibiliteten er en fin måte å få tilbake dataene dine på ulike scenarier, for eksempel:
- Du sletter databasen i SQL Server.
- Du formaterer harddisken.
- Harddiskfeil.
- Den virtuelle disken i VMWare eller Virtual PC er korrupt eller skadet, og du lagrer databasen på den.
- Sikkerhetskopieringsfilen på sikkerhetskopimediet er ødelagt eller skadet, og du kan ikke gjenopprette databasefilen fra den.
- Diskbildefilen er korrupt eller skadet, og du kan ikke gjenopprette MDF-filen fra den.
I de ovennevnte tilfellene kan du fortsatt være i stand til å gjenopprette SQL Server data fra harddisken, diskbilde eller sikkerhetskopifiler direkte.
Hvis du har diskbilde eller sikkerhetskopifiler for hånden, kan du gjøre som følger:
- Klikk på "..."-knappen for å velge kildefilen.
- I "Åpne fil"-dialogen velger du "Alle filer (*.*)" som filter.
- Velg diskbildet eller sikkerhetskopifilen som kildefilen som skal repareres.
- Angi det utdatafaste databasefilnavnet, for eksempel E_Drive_fixed.mdf.
Hvis du vil gjenopprette fra en harddisk direkte, kan du bruke DataNumen Disk Image for å lage en diskbildefil av harddisken som kildefilen i DataNumen SQL Recovery:
- Velg harddisken eller disken.
- Angi navnet på utdatabildet.
- Klikk "Start Kloning"-knappen for å lage diskbildefilen fra harddisken/disken.
2.4 Gjenopprett fra ransomware eller virus
Standardmetoder klarer vanligvis ikke å fikse databaser kryptert av skadelig programvare. DataNumen SQL Recovery utnytter spesielle algoritmer for å hente data fra løsepengevare-krypterte MDF-filer uten å betale angripere. Programvaren kan gjenopprette filer selv etter at kryptering har skadet overskriftene eller interne strukturer.
2.5 Reparer en gjenopprettet fil
Hvis MDF-filer gjenopprettet av DataNumen Data Recovery (eller andre datagjenopprettingsverktøy) kan ikke kobles til SQL Server, kan disse filene fortsatt ha noe korrupsjon. I et slikt tilfelle, bruk DataNumen SQL Recovery for å reparere dem igjen, for å sikre at dataene deres er tilgjengelige i SQL Server.
2.6 Gjenopprett fra tempdb.mdf
Når SQL Server kjører, vil den lagre alt tempoetrary-data, inkludert alt temporary tabeller og lagre prosedyrer, i et temporary database kalt tempdb.mdf. Når en datakatastrofe inntreffer, hvis du ikke kan gjenopprette ønskede data fra eksisterende mdf og tilknyttede ndf-filer, kan det hende du fortsatt kan gjenopprette dataene dine fra tempdb.mdf ved å bruke DataNumen SQL Recovery, følgende:
- Stopp SQL Server Data Engine-tjeneste.
- Bruke søkefunksjonen i Windows til å søke etter tempdb.mdf-filen på datamaskinen der SQL Server forekomsten er installert.
- Etter at du har funnet tempdb.mdf, kan du velge den som kildefilen som skal gjenopprettes, og bruke DataNumen SQL Recovery å gjenopprette det.
3. Manuelle metoder for å reparere MDF-fil
SQL Serversine opprinnelige metoder gir gratis alternativer for å reparere MDF-filkorrupsjon. Disse manuelle tilnærmingene kan redde databaser som du ikke har tilgang til, men de trenger nøye utførelse.
3.1 Gjenopprett fra en nylig sikkerhetskopi
Most pålitelig gjenopprettingsmetode starts med gjenoppretting fra en nylig sikkerhetskopi. Denne tilnærmingen omgår korrupsjon ved å gå tilbake til en sunn tilstand. Du kan bruke RESTORE DATABASE-kommandoen med riktige FROM DISK-parametere for å bringe databasen tilbake til dens tilstand før korrupsjon. Dataintegriteten din forblir intakt uten å kompromittere forholdet mellom databaseobjekter.
3.2 Bruk DBCC CHECKDB med REPAIR-alternativer
DBCC CHECKDB gir deg innebygde reparasjonsmuligheter hvis gjenoppretting av sikkerhetskopi ikke er et alternativ:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Kommandoen har tre reparasjonsnivåer:
- REPAIR_FAST: Beholder syntaks kun for bakoverkompatibilitet; gjør ingen reparasjoner
- REPAIR_REBUILD: Utfører reparasjoner uten tap av data
- REPAIR_ALLOW_DATA_LOSS: Retter alle rapporterte feil, men kan ofre noen data
3.3 Risikoer ved bruk av REPAIR_ALLOW_DATA_LOSS
Reparasjonsalternativer kommer med risiko. REPAIR_ALLOW_DATA_LOSS kan fjerne korrupte sider fullstendig, noe som fører til permanent tap av data. Den ignorerer også begrensninger for fremmednøkkel, som kan bryte den relasjonelle integriteten mellom tabeller. Så,
- Før reparasjonen bør du sikkerhetskopiere den korrupte MDF-filen manuelt.
- Etter reparasjonen bør du verifisere begrensninger ved å bruke DBCC CHECKCONSTRAINTS for å finne forretningslogiske feil.
3.4 Bruk DBCC CHECKTABLE
DBCC CHECKTABLE gir deg en tarfått tilnærming for korrupsjon i spesifikke tabeller:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Denne kommandoen ser på én tabell i stedet for hele databasen. Den går raskere og har færre risikoer når du først vet hvilke tabeller som har problemer.
3.5 Sett Database til NØD- og SINGLE_USER-modus
Alvorlig ødelagte databaser kan trenge NØD-modus som et siste alternativ:
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 tilgang gjennom nødmodus hvis normal tilgang mislykkes. Prosessen gjenoppbygger transaksjonsloggen, men du mister transaksjonskonsistensen og bryter RESTORE-kjeden. Sikkerhetskopier databasefilene dine før du prøver nødreparasjoner for å holde gjenopprettingsalternativene åpne.
3.6 «Hack Attach»-metoden
Hvis du ikke kan legge ved en skadet MDF-fil i SQL Server, kan du prøve «hack attach»-metoden:
- Opprett en dummy-database med samme navn som den skadede databasen
- Ta dummydatabasen offline
- Slett dummy-databasefilene
- Kopier den skadede MDF-filen til dummy-filplasseringen
- Legg databasen online
Denne metoden vil ikke fikse korrupsjon, men hjelper SQL Server gjenkjenne filen og aktivere reparasjonskommandoer.
3.7 Reparer en ødelagt hoveddatabase
Korrupsjon av masterdatabase krever disse trinnene:
- Kopier den ødelagte master.mdf-filen som en brukerdatabase til en annen server.
- Bruk DataNumen SQL Recovery eller manuelle metoder ovenfor for å gjenopprette objekter fra den.
- Eksporter de gjenopprettede objektene til et skript.
- Gjenoppbygg hoveddatabasen
på den opprinnelige serveren.
- Kjør skriptet som ble generert i trinn 3 for å gjenskape brukere og objekter.
4. Rett diskfeil som forårsaker MDF-filskade
SQL Server er sterkt avhengig av disk og filsystem for å lagre og hente data. Derfor fører disk- eller filsystemfeil ofte til MDF-filkorrupsjon som SQL Server verktøy kan ikke fikse på egenhånd. Du må fikse disse problemene før du bruker manuelle reparasjonsmetoder in SQL ServerNedenfor finner du noen verktøy som gjør denne oppgaven.
4.1 CHKDSK
CHKDSK (Check Disk) er et viktig Windows-verktøy som oppdager og reparerer filsystemfeil som kan ødelegge MDF-filene dine. Dette kommandolinjeverktøyet kommer inn på disker for å finne dårlige sektorer, lost klynger, krysskoblede filer og katalogfeil som kan påvirke SQL Server databasefiler.
Du kan kjøre CHKDSK på harddisken med den ødelagte MDF-filen. Mer detaljert informasjon finner du på Microsofts offisielle nettsted .
Mange tidligere utilgjengelige MDF-filer blir tilgjengelige igjen etter å ha kjørt CHKDSK. Denne prosessen forhindrer også fremtidig korrupsjon ved å fikse årsaken på disknivå.
Databaseadministratorer bør kjøre CHKDSK før de prøver andre reparasjonsmetoder hvis deres SQL Server databaser viser I/O-feil (som feil 15105). Denne tilnærmingen forbedrer restitusjonssjansene betydelig.
4.2 Diskdiagnoseostic-verktøy
I moderne Windows-versjoner inkluderer CHKDSK nå funksjonaliteten for å skanne og diagnostisere disker. Noen databaseadministratorer foretrekker imidlertid å bruke dedikert diskdiagnose.ostic-verktøy for å få bedre resultater og et fullstendig bilde av diskens helse. Dessuten vil disse verktøyene gi mer detaljerte rapporter enn CHKDSK.
Slik analyserer du disken din:
- Bruk produsentens diskdiagnoseostic verktøy
- Kjør overflateskanningstester for å identifisere og merke dårlige sektorer
- Utfør feilrettingsrutiner som er spesifikke for lagringsmaskinvaren din
Nedenfor er en liste over diskdiagnoseneostic-verktøy fra de største produsentene:
Tool | Disk | Feilgjenkjenning | Auto Fix |
---|---|---|---|
SeaTools | Seagate harddisker/SSD-er | ✅ | ⚠️ (begrenset) |
WD Dashboard | WD SSD-er | ✅ | ⚠️ |
Datalivredder | WD-harddisker | ✅ | ⚠️ |
Samsung Trollmann | Samsung SSD-er | ✅ | ⚠️ |
Intel MAS-verktøyet | Intel SSD-er | ✅ | ⚠️ |
Avgjørende leder | Crucial (Micron) SSD-er | ✅ | ⚠️ |
Kingston manager | Kingston SSD-er | ✅ | ⚠️ |
SanDisk-dashbord | SanDisk SSD-er | ✅ | ⚠️ |
Forklaring:
✅ = Støttet
⚠️ = Begrenset autofiks, mostgjennom sektoromlegging eller interne firmwarerutiner
Bedriftslagringssystemer trenger ekstra oppmerksomhet. Utover enkle diskkontroller, bør du se på diskkontrollere, kommunikasjonslinjer og hele diskundersystemet. Problemer hvor som helst i denne kjeden kan ødelegge databasen din.
Å fikse problemer på disknivå gir først SQL Server's reparasjonsmetoder en bedre sjanse til å lykkes. Denne systematiske tilnærmingen løser ofte korrupsjonsscenarier uten å trenge tredjepartsverktøy.
5. Online gjenopprettingstjenester
Nettjenester gir deg en annen måte å reparere SQL-databaser på når det ikke er mulig eller praktisk å laste ned og installere gjenopprettingsprogramvare. Disse nettjenestene hjelper deg med å fikse ødelagte MDF-filer uten at du trenger dyp teknisk kunnskap.
5.1 Enkle gjenopprettingsprosedyrer
Online SQL-gjenopprettingstjenester følger en brukervennlig prosess:
- Last opp den ødelagte filen – Din skadede MDF-fil overføres sikkert til tjenesteleverandørens server gjennom en kryptert tilkobling
- Bearbeiding og analyse – Tjenesten skanner filen din med spesialiserte algoritmer og identifiserer utvinnbare data
- Forhåndsvis gjenopprettingsresultater – Du kan forhåndsvise gjenopprettede databaseobjekter før du forplikter deg til full gjenoppretting
- Last ned reparert fil – Den reparerte databasefilen eller SQL-skriptene blir tilgjengelige etter behandling
Disse skytjenestene fungerer med SQL Server databasefiler som .mdf, .ndf og .ldf. Filstørrelse og alvorlighetsgrad av korrupsjon bestemmer behandlingstiden, som varierer fra sekunder til minutter.
5.2 Fordeler og ulemper
Fordeler med online gjenoppretting:
- Du trenger ikke å installere programvare – perfekt for begrensede miljøer eller brukere uten administratorrettigheter
- Fungerer på alle operativsystemer inkludert macOS og Linux
- Klar til bruk uten å laste ned store programvarepakker
- Brukervennlig grensesnitt passer personer med grunnleggende tekniske ferdigheter
- Du kan se utvinnbare data før du kjøper
Begrensninger å tenke på:
- Opplasting av sensitiv databaseinformasjon til tredjepartsservere skaper personvernbekymringer
- Maksimal databasestørrelse har begrensninger
- Færre tilpasningsmuligheter enn offline-verktøy
- Gjenopprettingshastigheten avhenger av serverytelse og belastning
- Demoversjoner viser bare noen utvinnbare data frem til kjøpet
Frakoblede gjenopprettingsverktøy gir deg mer kontroll og personvern, men trenger mer teknisk ekspertise. Most nettjenester lar deg teste effektiviteten deres med gratis demoer. Disse demoene gjenoppretter eksempeldata og merker andre gjenvinnbare gjenstander med plassholdere.
Det beste valget mellom online og offline gjenoppretting avhenger av dine behov. Tidspress, tekniske ferdigheter, datafølsomhet og typen MDF-filkorrupsjon spiller alle viktige roller i denne avgjørelsen.
6. Etter reparasjon: Valider og sikre databasen din
Å reparere den ødelagte MDF-filen løser bare halve problemet. Databasen din må bevises riktig og sikres etter vellykket gjenoppretting for å opprettholde dataintegriteten og stoppe fremtidige problemer.
6.1 Sjekk integriteten til gjenopprettede data
En detaljert valideringssjekk sikrer at alle data forblir intakte etter reparasjon. DBCC CHECKDB-kommandoen med DATA_PURITY skanner etter ugyldige verdier:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Denne kommandoen oppdager kolonneverdier som kan være ugyldige eller utenfor rekkevidden for deres datatyper. Husk at du må fikse eventuelle oppdagede feil manuelt siden reparasjonsalternativer ikke kan fikse dem automatisk.
DBCC CHECKCONSTRAINTS hjelper med å verifisere forretningslogikken forblir intakt fordi reparasjonsoperasjoner ikke sjekker eller opprettholder fremmednøkkelbegrensninger.
6.2 Gjenoppbygg indekser og begrensninger
Ytelsesoptimalisering blir neste trinn når dataintegriteten sjekkes ut. Reparasjonsoperasjoner etterlater ofte indekser fragmenterte, noe som krever rask oppmerksomhet:
ALTER INDEX ALL ON table_name REBUILD;
Kjerneteamet bør gjenoppbygge spesifikke høybruksindekser først for å gjenopprette ytelsen raskt på kritiske systemer. Dette skaper nye, riktige hosted indekserer at boost spørresvarstider.
6.3 Sikkerhetskopier den reparerte databasen
Lag en fullstendig sikkerhetskopi av din nylig reparerte database med en gang:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
CHECKSUM-alternativet sjekker sikkerhetskopieringsintegriteten under operasjonen. Test sikkerhetskopien på en testserver etterpå for å sikre at den fungerer som den skal før du bruker den til produksjonsgjenoppretting.
6.4 Konfigurer overvåking og varsler
Proaktiv overvåking hjelper til med å oppdage potensielle problemer før de ødelegger data. Konfigurer varsler for nøkkelberegninger, inkludert:
- CPU-prosent (terskel: 90 %)
- Dataplass brukt prosent (terskel: 95 %)
- Arbeidstakerbruk (terskel: 60 %)
- Vranglås (hvilken som helst forekomst)
- Systemfeil i tilkoblingsforsøk
Azure Monitor eller SQL Server Management Studio kan konfigurere disse varslene. Stateful varsler forblir utløst til de er løst, noe som forhindrer varslingsstormer under pågående problemer.
Ukentlige integritetskontroller med DBCC CHECKDB bør kjøres på kritiske databaser for å fange opp problemer tidlig.
7. Vanlige spørsmål
Databasekorrupsjon skaper mange spørsmål fra brukere. La oss se på noen vanlige spørsmål om reparasjon av MDF-filer SQL Server.
7.1 Kan jeg gjenopprette MDF-filen uten LDF-filen?
Svar: Ja, med profesjonelle verktøy som DataNumen SQL Recovery, kan du gjenopprette MDF-filer uten LDF-filen.
7.2 Bør jeg bruke reparasjonsverktøy fra tredjeparter eller innebygde metoder?
Svar: Innebygde metoder fortjener et første forsøk siden de har offisiell støtte. Til tross for dette kan tredjepartsverktøy gjenopprette mer data i alvorlige tilfeller av korrupsjon. Det beste valget avhenger av:
- Datakritikk
- Tilgjengelighet for sikkerhetskopiering
- Tidsbegrensninger
- Budsjettbegrensninger
- Risikotoleranse for tap av data
8. konklusjon
SQL Server databasekorrupsjon trenger rask oppdagelse og riktige gjenopprettingsmetoder for å minimere tap av data. MDF-filkorrupsjonstegn hjelper deg å handle raskt når det oppstår problemer. Du har flere gjenopprettingsalternativer, fra innebygd SQL Server verktøy til spesialiserte tredjepartsløsninger som DataNumen SQL Recovery verktøyNedenfor er et sammendrag av denne artikkelen:
Forebygging fungerer bedre enn kur. Regelmessig databasevedlikehold, riktige sikkerhetskopieringsprosedyrer og overvåking av diskhelse reduserer korrupsjonsrisikoen betydelig. Systemet må også bevise gjenopprettede databaser gjennom integritetssjekker og gjenoppbygge indekser for å holde data pålitelige etter reparasjoner.