1. Förstå MDF-filkorruption
MDF-filer är grunden för SQL Servers datalagringsmekanism. Dessa kritiska komponenter behöver snabb upptäckt och korrekta återställningsmetoder när de skadas för att minimera dataförlust. Låt oss lära oss om MDF-filer och hur man reparerar skadade MDF-filer.
1.1 Vad är en MDF-fil i SQL Server?
MDF (Master Database File) fungerar som den huvudsakliga datafilen i SQL Server som innehåller all användardata såsom tabeller, index, lagrade procedurer, vyer och andra databasobjekt. Den här filen innehåller både schema- och faktiska data, vilket gör den till den mest användaost viktig del av vilken som helst SQL Server databas. .mdf-filändelsen identifierar denna primära fil som fungerar tillsammans med loggfiler (.ldf). Dessa loggfiler spårar transaktionsinformation som behövs för återställningsåtgärder.
1.2 Vanliga orsaker till MDF-filkorruption
Dina MDF-filer kan bli skadade av flera anledningar:
- Strömavbrott eller felaktig SQL Server avstängningar
- Maskinvarufel, särskilt problem med lagringsundersystem
- Dåliga sektorer på lagringsenheten
- Skadlig programvara eller virusattacker på oskyddade system
- Filsystemfel som påverkar databaslagring
- Programvarufel i SQL Server sig
Systemkrascher under aktiva databasoperationer kan öka risken för korruption avsevärt eftersom de kan stoppa viktiga skrivoperationer.
1.3 Användbara tips för att förhindra MDF-filkorruption
Så här kan du skydda dina MDF-filer från korruption:
- Skapa regelbundna säkerhetskopior och kontrollera deras integritet automatiskt
- Använd CHECKSUMMA som alternativ för sidverifiering för alla databaser
- Kör säkerhetskopieringskommandon med CHECKSUM
- Skaffa en UPS för att undvika plötsliga avstängningar
- Kontrollera diskutrymmet ofta för att förhindra lagringsproblem
- Uppdatering SQL Server och operativsystemet med säkerhetsuppdateringar
- Kör DBCC CHECKDB regelbundet på alla databaser
1.4 Vanliga tecken på en skadad MDF-fil
Snabb upptäckt av MDF-filkorruption kan spara dig mycket återställningstid. Nedan följer några vanliga tecken på MDF-filkorruption:
- Felmeddelanden när du försöker koppla eller komma åt databasen
- Databasen visas i läge MISSTÄNKT eller VÄNTANDE ÅTERSTÄLLNING
- I/O-fel i SQL Server loggar, särskilt fel 823, 824 eller 825
- Konsekvensfel under databasoperationer
- Plötsliga prestandaproblem
- SQL Server fel 5171 eller 5172 vid anslutning av databaser
1.5 Använda DBCC CHECKDB för att upptäcka korruption
DBCC CHECKDB hjälper dig att upptäcka databaskorruption tidigt:
DBCC CHECKDB (database_name) WITH NO_INFOMSGS
Det här kommandot kör fullständiga kontroller inklusive:
- Kontroller av logisk och fysisk integritet för alla objekt
- Tester av indexstrukturer och sidlänkar
- Verifiering av allokeringskonsekvens i hela databasen
Att köra det här kommandot varje vecka eller dagligen för kritiska system hjälper dig att upptäcka skador tidigt och ger dig fler alternativ för återställning.
2. Använder sig av DataNumen SQL Recovery för att reparera en korrupt MDF-fil
DataNumen SQL Recovery hjälper dig att reparera skadade MDF-filer som SQL Servers inbyggda verktyg inte kan hantera. Programvaran använder avancerade algoritmer för att få most data möjliga från skadade filer och ger dig många återställningsalternativ.
2.1 Reparera en enskild fil
Processen för att reparera en enda fil är enkel och lätt att följa:
- Stäng alla program som kan ändra MDF-filen.
- Start DataNumen SQL Recovery.
- Välj den skadade MDF-filen genom att skriva dess namn eller klicka på bläddringsknappen.
- Inkludera alla relaterade NDF-filer om du behöver dem.
- Välj källdatabasens format eller låt systemet upptäcka det:
- Välj var du vill spara den återställda filen.
- Klicka på “Start Återställning”-knappen, kommer programvaran att ansluta till din SQL Server exempel med ditt servernamn och inloggningsuppgifter.
- Sedan kommer programvaran att fixa din fil med sina avancerade återställningsalgoritmer.
Du kommer att se en förloppsindikator som visar hur reparationen fortskrider. När den är klar kan du granska din återställda databas i SQL Server ManagementStudio.
2.2 Reparera en grupp filer
Företag med flera korrupta databaser sparar tid med batchreparation. Du kan lägga till alla dina skadade MDF-filer i en kö, ställa in dina utdatainställningar och ...taråterställningen. Den här funktionen fungerar utmärkt i affärsmiljöer som behöver åtgärda systemiska databasproblem.
Detaljerade steg:
- Gå till fliken "Batchåterställning".
- Klicka på "Lägg till filer" för att lägga till flera SQL Server MDF-filer som ska repareras.
- Du kan också klicka på "Sök filer" för att hitta filer som ska repareras på den lokala datorn.
- Klicka på “Start Återställningsknapp
- Alla PST-filer i listan kommer att repareras en efter en.
2.3 Återställ från hårddisk, diskavbildning eller säkerhetskopia
DataNumen SQL Recovery gör mer än vanlig återställning. Den kan hämta SQL-data från:
- VMWare VMDK virtuella maskindiskfiler
- Virtuella PC VHD-filer
- ISO-bildfiler
- Windows NTBackup-filer (.bkf)
- Acronis True Image-filer (.tib)
- Norton Ghost filer (.gho, .v2i)
Denna flexibilitet är ett utmärkt sätt att få tillbaka dina data i olika scenarier, till exempel:
- Du tar bort databasen i SQL Server.
- Du formaterar hårddisken.
- Hårddiskfel.
- Den virtuella disken i VMWare eller Virtual PC är skadad och du lagrar databasen på den.
- Säkerhetskopieringsfilen på säkerhetskopieringsmediet är skadad och du kan inte återställa databasfilen från den.
- Diskavbildningsfilen är skadad och du kan inte återställa din MDF-fil från den.
I ovanstående fall kan du fortfarande ha möjlighet att återhämta dig SQL Server data direkt från hårddisken, diskavbildningen eller säkerhetskopiorna.
Om du har diskavbildningen eller säkerhetskopiorna till hands kan du göra så här:
- Klicka på knappen "..." för att välja källfilen.
- I dialogrutan "Öppna fil", välj "Alla filer (*.*)" som filter.
- Välj skivavbilden eller säkerhetskopian som källfil som ska repareras.
- Ange det fasta filnamnet för utdatadatabasen, till exempel E_Drive_fixed.mdf.
Om du vill återställa direkt från en hårddisk kan du använda DataNumen Disk Image för att skapa en diskavbildningsfil av hårddisken som källfil i DataNumen SQL Recovery:
- Välj hårddisk eller disk.
- Ställ in utdatabildens filnamn.
- Klicka på “Start Cloning”-knappen för att skapa diskavbildningsfilen från hårddisken/disken.
2.4 Återställ från Ransomware eller Virus
Standardmetoder misslyckas vanligtvis med att åtgärda databaser som krypterats av skadlig kod. DataNumen SQL Recovery utnyttjar speciella algoritmer för att hämta data från ransomware-krypterade MDF-filer utan att betala angripare. Programvaran kan återställa filer även efter att krypteringen har skadat deras rubriker eller interna strukturer.
2.5 Reparera en återställd fil
Om MDF-filer återställdes av DataNumen Data Recovery (eller andra dataåterställningsverktyg) kan inte anslutas i SQL Server, kan dessa filer fortfarande vara skadade. I så fall, använd DataNumen SQL Recovery att reparera dem igen, för att säkerställa att deras data är tillgängliga i SQL Server.
2.6 Återställ från tempdb.mdf
När SQL Server körs kommer det att lagra allt temporary-data, inklusive allt temporary tabeller och lagra procedurer, i ett temporary-databasen kallas tempdb.mdf. Om datakatastrof inträffar kan du fortfarande återställa dina data från tempdb.mdf genom att använda om du inte kan återställa önskad data från befintliga mdf och tillhörande ndf-filer. DataNumen SQL Recovery, som följer:
- Sluta SQL Server Datamotortjänst.
- Använd Windows sökfunktion för att söka efter tempdb.mdf-filen på den dator där SQL Server instans är installerad.
- När du har hittat tempdb.mdf kan du välja den som källfilen som ska återställas och använda DataNumen SQL Recovery att återhämta det.
3. Manuella metoder för att reparera MDF-filer
SQL Servers inbyggda metoder erbjuder gratis alternativ för att reparera MDF-filkorruption. Dessa manuella metoder kan rädda databaser som du inte kan komma åt, men de kräver noggrant utförande.
3.1 Återställ från en nyligen gjord säkerhetskopia
Den most pålitliga återhämtningsmetodertarts med återställning från en nyligen genomförd säkerhetskopia. Den här metoden kringgår korruption genom att återgå till ett felfritt tillstånd. Du kan använda kommandot RESTORE DATABASE med korrekta FROM DISK-parametrar för att återställa din databas till dess tillstånd före korruptionen. Din dataintegritet förblir intakt utan att relationerna mellan databasobjekten kompromissas.
3.2 Använd DBCC CHECKDB med REPAIR-alternativ
DBCC CHECKDB ger dig inbyggda reparationsfunktioner om återställning av säkerhetskopior inte är ett alternativ:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Kommandot har tre reparationsnivåer:
- REPAIR_FAST: Behåller syntaxen endast för bakåtkompatibilitet; utför inga reparationer
- REPAIR_REBUILD: Utför reparationer utan dataförlust
- REPAIR_ALLOW_DATA_LOSS: Åtgärdar alla rapporterade fel, men kan offra viss data
3.3 Risker med att använda REPAIR_ALLOW_DATA_LOSS
Reparationsalternativ medför risker. REPAIR_ALLOW_DATA_LOSS kan ta bort korrupta sidor helt, vilket leder till permanent dataförlust. Den ignorerar också begränsningar för främmande nycklar, vilket kan bryta relationsintegriteten mellan tabeller. Så,
- Innan reparationen bör du säkerhetskopiera din korrupta MDF-fil manuellt.
- Efter reparationen bör du verifiera begränsningar med hjälp av DBCC CHECKCONSTRAINTS för att hitta brister i affärslogiken.
3.4 Använd DBCC CHECKTABLE
DBCC CHECKTABLE ger dig en targeted-metod för korruption i specifika tabeller:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Det här kommandot tittar på en tabell istället för hela databasen. Det körs snabbare och har färre risker när du vet vilka tabeller som har problem.
3.5 Ställ in databasen på NÖD- och ENKELANVÄNDARläge
Allvarligt skadade databaser kan behöva NÖDläge som ett sista alternativ:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Databasadministratörer får skrivskyddad åtkomst via nödläge om normal åtkomst misslyckas. Processen återskapar transaktionsloggen, men du förlorar transaktionell konsekvens och RESTORE-kedjan bryts. Säkerhetskopiera dina databasfiler innan du försöker med nödreparationer för att hålla dina återställningsalternativ öppna.
3.6 Metoden ”Hack Attach”
Om du inte kan bifoga en skadad MDF-fil i SQL Server, kan du prova "hack attach"-metoden:
- Skapa en dummydatabas med samma namn som din skadade databas
- Ta dummydatabasen offline
- Ta bort dummy-databasfilerna
- Kopiera din skadade MDF-fil till platsen för dummyfilen
- Ta databasen online
Den här metoden kommer inte att åtgärda korruption men hjälper SQL Server känner igen filen och aktiverar reparationskommandon.
3.7 Åtgärda en skadad huvuddatabas
Korruption av huvuddatabasen kräver dessa steg:
- Kopiera den skadade master.mdf-filen som en användardatabas till en annan server.
- Använda DataNumen SQL Recovery eller manuella metoder ovan för att återställa objekt från den.
- Exportera de återställda objekten till ett skript.
- Återuppbygg huvuddatabasen
på den ursprungliga servern.
- Kör skriptet som genererades i steg 3 för att återskapa användare och objekt.
4. Åtgärda diskfel som orsakar MDF-filkorruption
SQL Server är starkt beroende av disk och filsystem för att lagra och hämta data. Så fel på disk eller filsystem leder ofta till att MDF-filer skadas SQL Server verktyg kan inte åtgärda på egen hand. Du måste åtgärda dessa problem innan du använder manuella reparationsmetoder in SQL ServerNedan följer några verktyg som utför den här uppgiften.
4.1 CHKDSK
CHKDSK (Check Disk) är ett viktigt Windows-verktyg som upptäcker och reparerar filsystemfel som kan skada dina MDF-filer. Detta kommandoradsverktyg går in på diskar för att hitta dåliga sektorer,ost kluster, tvärlänkade filer och katalogfel som kan påverka SQL Server databasfiler.
Du kan köra CHKDSK på hårddisken med din skadade MDF-fil. Mer detaljerad information finns på Microsofts officiella webbplats .
Många tidigare oåtkomliga MDF-filer blir tillgängliga igen efter att CHKDSK har körts. Denna process förhindrar också framtida korruption genom att åtgärda grundorsaken på disknivå.
Databasadministratörer bör köra CHKDSK innan de försöker med andra reparationsmetoder om deras SQL Server Databaser visar I/O-fel (som fel 15105). Denna metod förbättrar återställningschanserna avsevärt.
4.2 Diskdiagnosostic-verktyg
I moderna Windows-versioner inkluderar CHKDSK nu funktionen för att skanna och diagnostisera diskar. Vissa databasadministratörer föredrar dock att använda dedikerad diskdiagnostik.ostic-verktyg för att få bättre resultat och en fullständig bild av diskens hälsa. Dessutom ger dessa verktyg mer detaljerade rapporter än CHKDSK.
Så här analyserar du din disk:
- Använd tillverkarens diskdiagnostikostic verktyg
- Kör ytskanningstester för att identifiera och markera dåliga sektorer
- Utför felkorrigeringsrutiner specifika för din lagringshårdvara
Nedan finns en lista över diskdiagnoserostic-verktyg från de största tillverkarna:
Verktyget | Disk | Felupptäckt | Auto Fix |
---|---|---|---|
SeaTools | Seagate hårddiskar/SSD-diskar | ✅ | ⚠️ (begränsat) |
WD Dashboard | WD SSD-diskar | ✅ | ⚠️ |
Datalivräddare | WD-hårddiskar | ✅ | ⚠️ |
Samsung Trollkarl | Samsung SSD | ✅ | ⚠️ |
Intel MAS-verktyg | Intel SSD:er | ✅ | ⚠️ |
Avgörande chef | Crucial (Micron) SSD-diskar | ✅ | ⚠️ |
Kingston-chef | Kingston SSD:er | ✅ | ⚠️ |
SanDisk-instrumentpanelen | SanDisk SSD-diskar | ✅ | ⚠️ |
Förklaring:
✅ = Stöds
⚠️ = Begränsad autokorrigering, mostgenom sektorommappning eller interna firmwarerutiner
Företagslagringssystem behöver extra uppmärksamhet. Utöver enkla diskkontroller bör du titta på diskkontroller, kommunikationslinjer och hela diskundersystemet. Problem var som helst i den här kedjan kan skada din databas.
Att först åtgärda problem på disknivå ger SQL Servers reparationsmetoder har en bättre chans att lyckas. Denna systematiska metod löser ofta korruptionsscenarier utan att behöva verktyg från tredje part.
5. Onlineåterställningstjänster
Onlinetjänster ger dig ett annat sätt att reparera SQL-databaser när det inte är möjligt eller bekvämt att ladda ner och installera återställningsprogram. Dessa onlinetjänster hjälper till att åtgärda skadade MDF-filer utan att behöva djupgående teknisk kunskap.
5.1 Enkla återställningsprocedurer
Online SQL-återställningstjänster följer en lättanvänd process:
- Ladda upp den skadade filen – Din skadade MDF-fil överförs säkert till tjänsteleverantörens server via en krypterad anslutning
- Bearbetning och analys – Tjänsten skannar din fil med specialiserade algoritmer och identifierar återställningsbara data
- Förhandsgranska återställningsresultat – Du kan förhandsgranska återställningsbara databasobjekt innan du genomför fullständig återställning
- Ladda ner den reparerade filen – Den reparerade databasfilen eller SQL-skripten blir tillgängliga efter bearbetning
Dessa molntjänster fungerar med SQL Server databasfiler som .mdf, .ndf och .ldf. Filstorlek och hur allvarlig skadan är avgör bearbetningstiden, som varierar från sekunder till minuter.
5.2 För- och nackdelar
Fördelar med online-återställning:
- Du behöver inte installera programvara – perfekt för begränsade miljöer eller användare utan administratörsrättigheter
- Fungerar på alla operativsystem, inklusive macOS och Linux
- Klar att använda utan att behöva ladda ner stora programpaket
- Användarvänligt gränssnitt passar personer med grundläggande tekniska färdigheter
- Du kan se återställningsbar data innan du köper
Begränsningar att tänka på:
- Att ladda upp känslig databasinformation till tredjepartsservrar väcker integritetsproblem
- Maximal databasstorlek har begränsningar
- Färre anpassningsalternativ än offlineverktyg
- Återställningshastigheten beror på serverns prestanda och belastning
- Demoversioner visar endast viss återställningsbar data fram till köpet
Offline-återställningsverktyg ger dig mer kontroll och integritet men kräver mer teknisk expertis.ost Med onlinetjänster kan du testa deras effektivitet med gratis demonstrationer. Dessa demonstrationer återställer exempeldata och markerar andra återställningsbara objekt med platsmarkörer.
Det bästa valet mellan online- och offline-återställning beror på dina behov. Tidspress, tekniska färdigheter, datakänslighet och typen av MDF-filkorruption spelar alla viktiga roller i detta beslut.
6. Efter reparation: Validera och säkra din databas
Att reparera din skadade MDF-fil löser bara halva problemet. Din databas behöver bevisas korrekt och säkras efter lyckad återställning för att bibehålla dataintegriteten och förhindra framtida problem.
6.1 Kontrollera integriteten hos återställda data
En detaljerad valideringskontroll säkerställer att all data förblir intakt efter reparation. DBCC CHECKDB-kommandot med DATA_PURITY söker efter ogiltiga värden:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Det här kommandot identifierar kolumnvärden som kan vara ogiltiga eller utanför intervallet för sina datatyper. Tänk på att du måste åtgärda eventuella upptäckta fel manuellt eftersom reparationsalternativ inte kan åtgärda dem automatiskt.
DBCC CHECKCONSTRAINTS hjälper till att verifiera att affärslogiken förblir intakt eftersom reparationsåtgärder inte kontrollerar eller underhåller begränsningar för främmande nyckel.
6.2 Återskapa index och begränsningar
Prestandaoptimering blir nästa steg när dataintegriteten har kontrollerats. Reparationsåtgärder lämnar ofta index fragmenterade, vilket kräver snabb uppmärksamhet:
ALTER INDEX ALL ON table_name REBUILD;
Kärnteamet bör först återskapa specifika höganvända index för att snabbt återställa prestandan på kritiska system. Detta skapar nya, korrekt användaosted index som boost svarstider för frågor.
6.3 Säkerhetskopiera den reparerade databasen
Skapa en fullständig säkerhetskopia av din nyligen reparerade databas direkt:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Alternativet CHECKSUM kontrollerar säkerhetskopians integritet under operationen. Testa säkerhetskopian på en testserver efteråt för att säkerställa att den fungerar korrekt innan du använder den för produktionsåterställning.
6.4 Konfigurera övervakning och varningar
Proaktiv övervakning hjälper till att upptäcka potentiella problem innan de skadar data. Ställ in varningar för viktiga mätvärden, inklusive:
- CPU-procent (tröskelvärde: 90 %)
- Procentuellt använt datautrymme (tröskelvärde: 95 %)
- Användning av arbetare (tröskelvärde: 60 %)
- Dödlägen (alla förekomster)
- Systemfel i anslutningsförsök
Azure Monitor eller SQL Server Management Studio kan konfigurera dessa aviseringar. Tillståndsbaserade aviseringar förblir utlösta tills de är lösta, vilket förhindrar aviseringsstormar under pågående problem.
Veckovisa integritetskontroller med DBCC CHECKDB bör köras på kritiska databaser för att upptäcka problem tidigt.
7. Vanliga frågor
Databaskorruption skapar många frågor från användare. Låt oss titta på några vanliga frågor om att reparera MDF-filer i SQL Server.
7.1 Kan jag återställa MDF-filen utan LDF-filen?
Svar: Ja, med professionella verktyg som t.ex. DataNumen SQL Recovery, kan du återställa MDF-filer utan LDF-filer.
7.2 Ska jag använda reparationsverktyg från tredje part eller inbyggda metoder?
Svar: Inbyggda metoder förtjänar ett första försök eftersom de har officiellt stöd. Trots det kan tredjepartsverktyg återställa mer data i allvarliga fall av korruption. Det bästa valet beror på:
- Datakritikalitet
- Tillgänglighet för säkerhetskopiering
- Tidsbegränsningar
- Budgetbegränsningar
- Risktolerans för dataförlust
8. Slutsats
SQL Server Databaskorruption behöver snabb upptäckt och korrekta återställningsmetoder för att minimera dataförlust. Tecken på MDF-filkorruption hjälper dig att agera snabbt när problem uppstår. Du har flera återställningsalternativ, från inbyggda SQL Server verktyg till specialiserade tredjepartslösningar som DataNumen SQL Recovery verktygNedan följer en sammanfattning av den här artikeln:
Förebyggande är bättre än botande. Regelbundet databasunderhåll, korrekta säkerhetskopieringsprocedurer och övervakning av diskhälsan minskar riskerna för korruption avsevärt. Systemet måste också bevisa återställda databaser genom integritetskontroller och återuppbygga index för att hålla data tillförlitliga efter reparationer.