sql >> Databasteknik >  >> RDS >> Sqlserver

Sätt att återställa data från SQL Server Transaction Log File

Sammanfattning: Många gånger SQL-databasadministratör letar efter sätt att återställa data från SQL Server Transaktionsloggar, Användaren kan läsa den här artikeln för att utföra denna uppgift. Vi har gett det bästa möjliga och även det enklaste sättet att återställa data från (.ldf) fil. Om du har problem med databaskorruption och vill återställa databasobjekt prova dettaÅterställ SQL-databas Programvara. För ytterligare information kan användaren läsa den här artikeln.

Det finns tillfällen då klienter möter beklagliga databasförhållanden i sina SQL Server-databaser. Situationerna kan uppstå under administration och support av deras databasfiler. Ibland raderas databasobjekten oavsiktligt, på grund av vilket databasadministratörer möter många problem. Därefter, för att återgå till den vanliga arbetsprocessen, bör filerna återställas till SQL Server-databasen.

SQL Server-transaktionsloggen spelar ett betydande jobb för att återställa raderade data i händelse av att du felaktigt spelar ut DELETE- eller UPDATE-operationen med ett olämpligt tillstånd eller utan filtreringsvillkor. Detta kan åstadkommas genom att lyssna på posterna i den här svarta lådan som är känd som SQL Server Transaction Log-filen.

Hur man återställer data från SQL Server-transaktionsloggfil

För att analysera de olika teknikerna som vi kan använda för att återställa data från SQL Server Transaction Log-filen, kommer vi att skapa en annan databas med en enda tabell, med hjälp av skriptet nedan:

Efter att ha skapat databasen och tabellen kommer vi att fylla den tabellen med 30 poster, med hjälp av INSERT INTO T-SQL-satsen nedan:

Eftersom ingen säkerhetskopia har tagits från databasen ännu, hur kan vi återställa tabellens data om UPDATE-kommandot under exekveras över den tabellen med nowhere-satsen som används för att filtrera data som ska ändras?

Använda inbyggda metoder

1.) fn_dblog: Innehållet i SQL Server Transaction Log kan läsas online med hjälp av olika implicita funktioner. Den första funktionen som vi kommer att försöka använda för att återställa förlorad data är fn_dblog . Det är en odokumenterad ramverkstabellvärderad funktion, som används för att göra en djupdykning i SQL Server-transaktionsloggen och visa innehållet i det dynamiska segmentet av den filen.

För att använda fn_dblog() funktion måste du ange två parametrar, början och slutet LSN för loggen. För att se alla loggar som är tillgängliga i det dynamiska segmentet av SQL-transaktionsloggfilen kan du skicka NULL-värdet för dessa två parametrar. Eftersom resultatet kom tillbaka från att fn_dblog()-arbetet innehåller 129 kolumner, är det bättre att bara välja de segment som innehåller data du är sugen på och filtrera resultatet för att bara visa operationen som du tänker återställa. Till exempel loggas operationen LOP_INSERT_ROWS när en annan post är inbäddad, operationen LOP_DELETE_ROWS loggas när en ny post tas bort och operationen LOP_MODIFY_ROW loggas när en aktuell post uppdateras. Skriptet nedan kan användas för att kontrollera uppdateringssatserna som utförs på den databasen:

2.) fn_dump_dblog(): Det efterföljande ramverket fungerade i funktion, fn_dump_dblog(), har en fördel jämfört med fn_dblog()-arbetet är att det mycket väl kan användas för att läsa SQL Server-transaktionslogg-säkerhetskopian, trots möjligheten att läsa online-transaktionsloggfilen. Återigen, för att använda funktionen fn_dump_dblog() måste du ange 68 obligatoriska parametrar, som visas i skriptet nedan:

3.) DBCC-sidkommando: SQL Server ger oss otaliga DBCC-kommandon som kan användas för att spela ut olika typer av SQL Server-administratörsuppgifter. Ett av dessa odokumenterade kommandon är kommandot DBCC Page, som kan användas för att läsa innehållet i databasdata och logga onlinefiler. För att se innehållet i databasloggfilen måste du ange databasnamnet och ID för transaktionsloggfilen. Transaktionsloggfilens ID kan återställas från frågan nedan.

Begränsningar för manuella metoder för att återställa data från SQL Server-transaktionslogg

  1. Svårt att utföra.
  2. Kräver stark teknisk kunskap.
  3. Hög risk för dataförlust.

Expertlösning till Återställ data från SQL Server Transaction Log File

Vid den tidpunkt då en databas är skadad eller tabellens data av misstag förloras eller ändras, kan den långa tid som krävs för att återskapa och analysera data med hjälp av implicita strategier inte vara tillräcklig. I enlighet med dessa linjer måste vi söka på SQL Server-administrationsmarknaden efter ett verktyg som effektivt och omedelbart kan användas för att läsa transaktionsloggfilens innehåll och visa detta innehåll i ett lättanvänt format.

SysTools SQL Log File Reader verktyg, som enkelt kan användas för att läsa innehållet i SQL-transaktionsloggfilen online. Genom att använda denna programvara kan användaren enkelt läsa och analysera SQL Server Transactional Log-filer INSERT / UPPDATERA / DELETE operationer. Denna professionella applikation på företagsnivå kan fungera i både offline- och onlinedatabasmiljöer. Denna applikation erbjuder också dynamiska filteralternativ för att exportera en selektiv transaktionsloggfil. Denna programvara stöder SQL Server 2019-versionen.

Steg för att återställa data från SQL Server-transaktionslogg

  1. Ladda ner och installera SQL Log Analyser.

2. Välj nu Databasalternativet

3. Förhandsgranska SQL Server Transactional Log-fildata.

4. Klicka på knappen Exportera för att exportera loggfilens data.

Slutsats

Trots det faktum att den manuella tekniken kan återställa raderade objekt från SQL-tabeller, är det inte ett föreskrivet alternativ för klienter på grund av dess invecklade och tråkiga. Det rekommenderas snarare att använda en idealisk lösning för att återställa data från SQL Server Transaction Log-fil.


  1. Får fel när paketet körs

  2. SQL - Skapa vy från flera tabeller

  3. Varför är en UDF så mycket långsammare än en underfråga?

  4. Använder Room DB i biblioteksprojekt