sql >> Database teknologi >  >> RDS >> Sqlserver

Måder at gendanne data fra SQL Server Transaction Log File

Oversigt: Mange gange SQL-databaseadministrator på udkig efter måder at gendanne data fra SQL Server-transaktionslogfiler, kan brugeren læse denne artikel for at udføre denne opgave. Vi har givet den bedst mulige og også den nemmeste måde at gendanne data fra (.ldf) fil. Hvis du står over for problemer med databasekorruption og ønsker at gendanne databaseobjekter, prøv denneGendan SQL-database Software. For yderligere information kan brugeren læse denne artikel.

Der er tidspunkter, hvor klienter står over for beklagelige databaseforhold i deres SQL Server-databaser. Situationerne kan opstå under administration og support af deres databasefiler. Til tider slettes databaseobjekterne utilsigtet, på grund af hvilke databaseadministratorer står over for adskillige problemer. Efterfølgende, for at vende tilbage til den almindelige arbejdsproces, bør filerne gendannes tilbage til SQL Server-databasen.

SQL Server-transaktionsloggen spiller et betydeligt stykke arbejde med at gendanne slettede data i tilfælde af, at du fejlagtigt udspiller DELETE- eller UPDATE-operationen med en upassende tilstand eller uden filtreringstilstand. Dette kan opnås ved at lytte til posterne, der er gemt inde i denne sorte boks, der er kendt som SQL Server Transaction Log-filen.

Sådan gendannes data fra SQL Server-transaktionslogfil

For at analysere de forskellige teknikker, som vi kan bruge til at gendanne data fra SQL Server Transaction Log-filen, vil vi oprette en anden database med en enkelt tabel ved at bruge scriptet nedenunder:

Efter at have oprettet databasen og tabellen, vil vi udfylde denne tabel med 30 poster ved at bruge INSERT INTO T-SQL-sætningen nedenunder:

Da der endnu ikke er taget nogen sikkerhedskopi fra databasen, hvordan kan vi gendanne tabellens data, hvis den nedenstående UPDATE-kommando udføres over den tabel med nowhere-sætning brugt til at filtrere de data, der skal ændres?

Brug af indbyggede metoder

1.) fn_dblog: Indholdet af SQL Server Transaction Log kan læses online ved hjælp af forskellige implicitte funktioner. Den første funktion, som vi vil forsøge at bruge til at gendanne de tabte data, er fn_dblog . Det er en udokumenteret framework-tabelværdi-funktion, der bruges til at lave et dyk i SQL Server-transaktionsloggen og se indholdet af det dynamiske segment af denne fil.

For at bruge fn_dblog() funktion, skal du angive to parametre, begyndelsen og slutningen LSN af loggen. For at se alle logfiler, der er tilgængelige i det dynamiske segment af SQL-transaktionslogfilen, kan du sende NULL-værdien for disse to parametre. Da resultatet kom tilbage fra, at fn_dblog()-arbejdet indeholder 129 kolonner, er det bedre kun at vælge de segmenter, der indeholder de data, du er interesseret i, og filtrere resultatet for kun at vise den operation, du har til hensigt at gendanne. For eksempel logges LOP_INSERT_ROWS-operationen, når en anden post er indlejret, LOP_DELETE_ROWS-operationen logges, når en ny post slettes, og LOP_MODIFY_ROW-handlingen logges, når en aktuel post opdateres. Det nedenstående script kan bruges til at kontrollere de opdateringssætninger, der udføres på den pågældende database:

2.) fn_dump_dblog(): Den efterfølgende ramme fungerede i funktion, fn_dump_dblog(), har en fordel i forhold til fn_dblog()-arbejdet, at det meget vel kan bruges til at læse SQL Server-transaktionslog-sikkerhedskopien, uanset muligheden for at læse online-transaktionslogfilen. Så igen, for at bruge fn_dump_dblog()-funktionen, skal du angive 68 obligatoriske parametre, som det fremgår af scriptet nedenfor:

3.) DBCC-sidekommando: SQL Server giver os utallige DBCC-kommandoer, der kan bruges til at afspille de forskellige slags SQL Server-administrationsopgaver. En af disse udokumenterede kommandoer er kommandoen DBCC Page, som kan bruges til at læse indholdet af databasedataene og logge onlinefiler. For at se indholdet af databaselogfilen skal du angive databasenavnet og id'et for transaktionslogfilen. Transaktionslogfilens ID kan gendannes fra forespørgslen nedenunder.

Begrænsninger af manuelle metoder til at gendanne data fra SQL Server-transaktionslog

  1. Svært at udføre.
  2. Kræver stærk teknisk viden.
  3. Høj risiko for tab af data.

Ekspertløsning til Gendan data fra SQL Server-transaktionslogfil

På det tidspunkt, hvor en database er beskadiget, eller tabellens data fejlagtigt går tabt eller ændres, kan den lange tid, der kræves for at genskabe og analysere dataene ved hjælp af de implicitte strategier, ikke være tilstrækkelig. På denne måde er vi nødt til at søge på SQL Server-administrationsmarkedet efter et værktøj, der effektivt og øjeblikkeligt kan bruges til at læse transaktionslogfilens indhold og vise dette indhold i et brugervenligt format.

SysTools SQL Log File Reader værktøj, der praktisk kan bruges til at læse indholdet af den online SQL-transaktionslogfil. Ved at bruge denne software kan brugeren nemt læse og analysere SQL Server Transactional Log-filer INSERT / UPDATE / DELETE operationer. Denne professionelle applikation på virksomhedsniveau kan arbejde på både offline og online databasemiljø. Denne applikation tilbyder også dynamiske filtre mulighed for at eksportere en selektiv transaktionslogfil. Denne software understøtter SQL Server 2019-versionen.

Trin til at gendanne data fra SQL Server-transaktionslog

  1. Download og installer SQL Log Analyser.

2. Vælg nu Databaseindstillingen

3. Se forhåndsvisning af SQL Server Transactional Log-fildata.

4. Klik på knappen Eksporter for at eksportere logfildataene.

Konklusion

På trods af det faktum, at den manuelle teknik kan gendanne slettede elementer fra SQL-tabeller, er det ikke en foreskrevet mulighed for klienter på grund af dens indviklede og kedelige. Det anbefales snarere at bruge en ideel løsning til at gendanne data fra SQL Server Transaction Log-fil.


  1. Automatisering af den tabelformede modelbehandling af SSAS-databaser i SQL Server

  2. SQL Server 2016:Gendan en database

  3. Hvordan kan jeg se, hvilket tegnsæt en MySQL-database/tabel/kolonne er?

  4. Stjerneskema vs. snefnugskema