- Dataförlust är ett vanligt problem, men vi kommer att visa dig hur du reparerar en skadad databas i SQL Server.
- Det här problemet kan härröra från en enkel överskrivning eller oavsiktlig radering av filer till virusinfektioner och felaktig konfiguration.
- Fel på lagringsenheten kan också orsaka filkorruption och det inkluderar din SQL-databas.
Naturligtvis är det frustrerande att upptäcka en skadad databas på din SQL Server av uppenbara skäl. Du kan inte komma åt informationen och ditt arbete når ett punkt.
Det finns dock många sätt du kan lösa det här problemet med manuella lösningar eller genom att använda ett smart, dedikerat verktyg från tredje part som heter Återställningsverktygslåda för SQL Server.
Men innan du börjar felsökningen, låt oss förstå och undersöka lite varför detta problem uppstår i första hand.
Vad är en SQL Server och hur kan vi identifiera databasen?
En SQL Server är ett databassystem, utvecklat av Microsoft, som används för att hantera, lagra och hämta data av andra applikationer.
Det finns tre typer av filer för att lagra och hantera data i en SQL Server: primära filer (med .MDF-tillägget), sekundära filer (med .NDF-tillägget) och loggfiler (med .LDF-tillägget).
Vi är särskilt intresserade av dessa MDF-filer eftersom det är de som tillhandahåller databaslagring.
Varför blir en databas skadad på en SQL Server?
Det finns många möjliga orsaker till att din SQL-serverdatabas kan bli skadad, från en enkel överskrivning eller oavsiktlig radering av filer till virusinfektioner och felaktig konfiguration.
Låt oss gå igenom några av de vanligaste orsakerna till detta problem:
- Skriver över en fil – Om du skriver över en befintlig MDF-fil av misstag riskerar du att korrumpera databasen
- Försöker låsa upp SQL-databasen - Om du glömde SQL-lösenordet och anger det fel för många gånger, kan detta leda till SQL Server Corruption
- Fel på din lagringsenhet – Det säger sig självt att ett diskfel kan orsaka filkorruption, inklusive databasen
- Problem med SQL-databaskonfiguration – Om SQL-konfigurationen ändras kan det inaktivera åtkomsten till MDF-filer
- Virusinfektion – Detta är ett vanligt problem för alla filkorruptioner, inte bara SQL-databasfilerna och även om du tar bort viruset genom att använda de bästa antivirusprogrammen kan du tyvärr fortfarande förlora en del data
- SQL interna buggar – Även om det är en stark lösning, kan det fortfarande ha sina buggar som kan orsaka MDF-filer korruption
Som sagt, följ vår steg-för-steg-guide för att lära dig hur du reparerar en SQL-databasfil på en SQL Server.
Hur kan jag reparera en skadad databas i SQL Server?
NOTERA
Notera: Innan du startar något, gör en säkerhetskopia av SQL-biblioteket.
1. Starta om SQL Server
- Öppna en terminal och skriv in följande kommando för att stoppa SQL Server:
systemctl mysql stopp
- För att kontrollera statusen för SQL Server, skriv följande kommando och tryck Stiga på:
status mysql.service
- Starta nu om SQL Server genom att utföra följande kommando i terminalen:
starta om mysql.service
Ibland kan du lösa problemet bara genom att starta om SQL Server. Naturligtvis fungerar det inte varje gång men det är så lätt att utföra att det inte skulle skada att utföra.
2. Reparera ett skadat bord
- Starta SQL Server.
- Skriv följande kommando och tryck Stiga på för att köra det:
KONTROLLERA TABELL namn_på_tabellen;
- Om det upptäcker några problem med tabellen, skriv följande kommando och tryck Stiga på:
REPARERA TABELL namn_på_tabellen;
REPAIR TABLE hjälper dig att reparera en tabell och du kan göra detsamma för alla andra skadade, men på detta sätt kan du förlora en del data från tabellen.
3. Använd kommandot mysqlcheck
- Öppna en terminal och skriv eller klistra in följande kommando för att komma till databasmappen och tryck Stiga på:
cd /var/lib/mysql
- Skriv nu följande kommando för att testa en tabell och tryck på Stiga på. Se till att du byter ut och med de faktiska namnen:
mysqlcheck
- Om du får meddelandet att tabellen är skadad skriver du följande kommando för att reparera den och trycker på Stiga på:
mysqlcheck -r
4. Använd kommandona ALTER TABLE
- Skriv följande kommando för att kontrollera din tabelltyp (i vårt fall är det en MyISAM-tabell):
VISA SKAPA TABELL
;
- För att bygga om tabellen, skriv följande kommando och tryck Stiga på:
ÄNDRA TABELL
MOTOR = MyISAM;
- Om du har en InnoDB-databas, skriv följande kommando istället:
ÄNDRA TABELL
ENGINE = InnoDB;
- Ladda ner och installera Microsoft SQL Server 2019
- Bästa programvara för SQL-serversäkerhetskopiering [gratis och betald]
- Hur man säkrar en SQL-serverdatabas
5. Reparera databasen med Recovery Toolbox för SQL Server
- Gå till den dedikerade sidan för återställningsverktygslådan för SQL Server och klicka på Ladda ner knapp.
- Installera appen efter att du har valt språk och accepterat licensavtalet.
- Klick Avsluta för att starta reparationsverktyget för SQL Server MDF.
- Välj den skadade *.mdf filen genom att klicka på källmappsikonen.
- När du har valt den klickar du på Nästa knapp.
- Du kommer nu att kunna förhandsgranska data som kan hämtas från den skadade Microsoft SQL Server-databasen. Klicka på Nästa i fönstret för återställningsverktyget för Microsoft SQL MDF för att starta processen.
- Nu behöver du bara välja metoden för dataexporten. Du kan spara den som SQL-skript till disk och till och med exekvera SQL-skriptet direkt på databasen.
- Slutligen väljer du vilken data du vill spara och klickar på Starta återställning.
Så detta är hur man reparerar SQL-serverdatabasfiler med detta enkla och effektiva verktyg. Som du kan se kommer det att få jobbet gjort mycket snabbare.
De MS SQL-serveråterställningsverktyg kommer också att hjälpa dig om du har följande problem med MDF-databasen:
- Microsoft SQL Server-fel 5172 – Egenskapen FILE SIZE är felaktig
- SQL Server upptäckte ett logiskt konsistensbaserat I/O-fel – Det är en felaktig kontrollsumma, även känd som fel 824 i SQL Server
- Sidan Index Allocation Map (IAM) pekas på av nästa pekare på en IAM-sida – Det är ett ganska vanligt problem
- I/O-fel, dåligt sid-ID, upptäckt vid läsning vid offset 0x###### i filen FileName.mdf – Det här verkar inte så ofta men du kan fortfarande reparera det med det här lilla verktyget
- Filen verkar ha trunkerats av operativsystemfelet – Mest troligt orsakat av ett konfigurationsproblem
- Ett fel uppstod vid loggpost-ID – Det inträffar när en loggad operation görs om i databasen
Med Recovery Toolbox för SQL Server reparerar faktiskt alla objekt av skadade .mdf-filer inklusive datatyper, tabeller celldata, vyer, lagrade procedurer, anpassade funktioner, utlösare, index, primära och främmande nycklar, begränsningar och andra.
Och den stora fördelen är att du kan exportera den reparerade datan direkt till Microsoft SQL Server sömlöst från appen.
Detta är det! Nu vet du hur du reparerar din SQL Server-databas manuellt eller genom att använda ett dedikerat verktyg.
Om du känner till ytterligare metoder eller har några frågor, väntar vi på dem i kommentarsfältet nedan.