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
  • Allokeringsfeil på GAM/SGAM/IAM/PFS-sider.
  • Konsistensfeil under databaseoperasjoner
  • Plutselige ytelsesproblemer

Nedenfor er noen av de vanlige feilmeldingene når MDF-filen er skadet:

Kunne ikke hente data for denne forespørselen. (Microsoft.SqlServer.Management.Sdk.Sfc) xxx.mdf er ikke en primær databasefil. (Microsoft SQL Server, Feil: 5171)
Kunne ikke koble databasen til serveren 'xxx'. (Microsoft.SqlServer.Smo) Toppteksten for filen 'xxx.mdf' er ikke en gyldig databasefilhode. FILE SIZE-egenskapen er feil. (Microsoft) SQL Server, Feil:5172)
SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum (forventet: 0x2abc3894; faktisk: 0x2ebe208e). Det skjedde under lesing av side (1:1) i database ID 12 ved offset 0x00000000002000 i filen 'xxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi flere detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes opp umiddelbart. Fullfør en fullstendig databasekonsistenssjekk (DBCC CHECKDB). Denne feilen kan skyldes mange faktorer; for mer informasjon, se SQL Server Bøker på nett.(Microsoft SQL Server, Feil:824)
SQL Server oppdaget en logisk konsistensbasert I/O-feil: revet side (forventet signatur: 0x########; faktisk signatur: 0x#######).

2. Gratis manuelle metoder for å reparere MDF-filer

SQL Servers innebygde metoder tilbyr gratis metoder for å reparere MDF-filkorrupsjon. Disse manuelle metodene kan redde databaser du ikke har tilgang til, men de krever nøye utførelse.

2.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.

2.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

Vi har en omfattende guide om DBCC CHECKDB som dekker alle alternativer og scenarier (Microsofts offisielle dokumentasjon er også tilgjengelig her.).

2.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.

2.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.

2.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.

2.6 «Hack Attach»-metoden

Hvis du ikke kan legge ved en skadet MDF-fil i SQL Server, kan du prøve «hack attach»-metoden:

  1. Opprett en dummy-database med samme navn som den skadede databasen
  2. Ta dummydatabasen offline
  3. Slett dummy-databasefilene
  4. Kopier den skadede MDF-filen til dummy-filplasseringen
  5. Legg databasen online

Denne metoden vil ikke fikse korrupsjon, men hjelper SQL Server gjenkjenne filen og aktivere reparasjonskommandoer.

2.7 Reparer en ødelagt hoveddatabase

Korrupsjon av masterdatabase krever disse trinnene:

  1. Kopier den ødelagte master.mdf-filen som en brukerdatabase til en annen server.
  2. Bruk manuelle metoder eller DataNumen SQL Recovery gjenopprette gjenstander fra den.
  3. Eksporter de gjenopprettede objektene til et skript.
  4. Gjenoppbygg hoveddatabasen External Link på den opprinnelige serveren.
  5. Kjør skriptet som ble generert i trinn 3 for å gjenskape brukere og objekter.

3. Ved hjelp av DataNumen SQL Recovery for å reparere korrupt MDF-fil

Hvis de manuelle metodene ovenfor mislykkes, kan du prøve profesjonelle verktøy, som for eksempel DataNumen SQL Recovery, som hjelper deg med å reparere 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.

3.1 Reparer en enkelt fil

Enkeltfilreparasjonsprosessen er enkel og enkel å følge:

  1. Lukk alle programmer som kan endre MDF-filen.
  2. Start DataNumen SQL Recovery.
  3. Velg den skadede MDF-filen ved å skrive inn navnet eller klikke på bla-knappen.
  4. Inkluder eventuelle relaterte NDF-filer hvis du trenger dem.
  5. Velg kildedatabaseformatet eller la systemet oppdage det:
    Angi formatet for kilden SQL Server MDF-fil
  6. Velg hvor du vil lagre den gjenopprettede filen.
  7. Klikk på "Start Gjenopprett"-knappen, vil programvaren koble til din SQL Server forekomst med servernavnet og påloggingsdetaljer.
  8. Deretter vil programvaren fikse filen din med sine avanserte gjenopprettingsalgoritmer.

Bruk DataNumen SQL Recovery å reparere en enkelt ødelagt SQL Server MDF-fil.
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.

3.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:

  1. Gå til fanen "Batch Recovery".
  2. Klikk "Legg til filer" for å legge til flere SQL Server MDF-filer som skal repareres.
  3. Du kan også klikke på "Søk etter filer" for å finne filer som skal repareres på den lokale datamaskinen.
  4. Klikk på "Start Gjenopprett”-knappen
  5. Alle PST-filene på listen vil bli reparert én etter én.

Bruk DataNumen SQL Recovery å reparere et parti med ødelagte SQL Server MDF filer.

3.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:

  1. Klikk på "..."-knappen for å velge kildefilen.
  2. I "Åpne fil"-dialogen velger du "Alle filer (*.*)" som filter.
  3. Velg diskbildet eller sikkerhetskopifilen som kildefilen som skal repareres.
  4. Angi det utdatafaste databasefilnavnet, for eksempel E_Drive_fixed.mdf.

Bruk DataNumen SQL Recovery å gjenopprette SQL Server data fra harddisker, diskbilder eller sikkerhetskopifiler.

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:

  1. Velg harddisken eller disken.
  2. Angi navnet på utdatabildet.
  3. Klikk "Start Kloning"-knappen for å lage diskbildefilen fra harddisken/disken.

Bruk DataNumen Disk Image å lage en diskbildefil fra en harddisk/disk, slik at DataNumen SQL Recovery kan gjenopprette SQL Server data fra diskbildefilen.

3.4 Gjenopprett slettede poster og tabeller

Hvis du sletter noen poster i en tabell, eller sletter noen tabeller i en database ved en feiltakelse, kan du gjenopprette dem via DataNumen SQL Recovery.

For postene som ikke ble slettet, kan det hende at de ikke vises i samme rekkefølge som før de ble slettet, så etter gjenopprettingen må du kanskje bruke SQL-setninger for å finne disse postene som ikke ble slettet.

For de ikke-slettede tabellene, hvis navnene deres ikke kan gjenopprettes, vil de bli omdøpt til "Recovered_Table1", "Recovered_Table2", og så videre ...

3.5 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.

3.6 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.

3.7 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:

  1. Stopp SQL Server Data Engine-tjeneste.
  2. Bruke søkefunksjonen i Windows til å søke etter tempdb.mdf-filen på datamaskinen der SQL Server forekomsten er installert.
  3. Etter at du har funnet tempdb.mdf, kan du velge den som kildefilen som skal gjenopprettes, og bruke DataNumen SQL Recovery å gjenopprette det.

3.8 Eksempelfiler

SQL Server versjon Korrupt MDF-fil MDF-fil fikset av 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 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.

4.1 Enkle gjenopprettingsprosedyrer

Online SQL-gjenopprettingstjenester følger en brukervennlig prosess:

  1. Last opp den ødelagte filen – Din skadede MDF-fil overføres sikkert til tjenesteleverandørens server gjennom en kryptert tilkobling
  2. Bearbeiding og analyse – Tjenesten skanner filen din med spesialiserte algoritmer og identifiserer utvinnbare data
  3. Forhåndsvis gjenopprettingsresultater – Du kan forhåndsvise gjenopprettede databaseobjekter før du forplikter deg til full gjenoppretting
  4. 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.

4.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.

5. Flere løsninger

Selv om metodene som er dekket i tidligere avsnitt håndterer most Scenarier for korrupsjon av MDF-filer, tilbyr databasegjenopprettingslandskapet ytterligere spesialiserte løsninger. Vi har evaluert en rekke tilnærminger og samlet denne omfattende listen over most effektive alternative metoder som utfyller de viktigste reparasjonsstrategiene.

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:

Infografikk som viser omrisset av dette SQL Server Reparasjonsguide for MDF

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.