sql >> Database >  >> RDS >> Sqlserver

Manieren om gegevens te herstellen uit het transactielogboekbestand van SQL Server

Samenvatting: Vaak is de SQL-databasebeheerder op zoek naar manieren om gegevens uit SQL Server-transactielogboeken te herstellen. De gebruiker kan dit artikel lezen om deze taak uit te voeren. We hebben de best mogelijke en ook de gemakkelijkste manier gegeven om gegevens uit een (.ldf)-bestand te herstellen. Als u problemen ondervindt met databasecorruptie en databaseobjecten wilt herstellen, probeer dan ditSQL-database herstellen Software. Voor meer informatie kan de gebruiker dit artikel lezen.

Er zijn momenten waarop klanten te maken krijgen met betreurenswaardige database-omstandigheden in hun SQL Server-databases. De situaties kunnen zich voordoen tijdens het beheer en de ondersteuning van hun databasebestanden. Soms worden de database-objecten onbedoeld verwijderd, waardoor databasebeheerders met tal van problemen worden geconfronteerd. Om vervolgens terug te keren naar het normale werkproces, moeten de bestanden terug naar de SQL Server-database worden hersteld.

Het SQL Server-transactielogboek speelt een belangrijke taak bij het herstellen van verwijderde gegevens in het geval dat u ten onrechte de DELETE- of UPDATE-bewerking uitvoert met een ongepaste voorwaarde of zonder filtratievoorwaarde. Dit kan worden bereikt door te luisteren naar de records die in deze zwarte doos zijn opgeborgen die bekend staat als het SQL Server-transactielogboekbestand.

Hoe u gegevens kunt herstellen uit het transactielogboekbestand van SQL Server

Om de verschillende technieken te analyseren die we kunnen gebruiken om gegevens uit het SQL Server-transactielogboekbestand te herstellen, zullen we een andere database maken met een enkele tabel, met behulp van het onderstaande script:

Nadat we de database en de tabel hebben gemaakt, vullen we die tabel met 30 records, met behulp van de onderstaande instructie INSERT INTO T-SQL:

Als er nog geen back-up uit de database is gemaakt, hoe kunnen we de gegevens van de tabel herstellen als het onderstaande UPDATE-commando wordt uitgevoerd over die tabel zonder dat nergens een instructie wordt gebruikt om de gegevens te filteren die moeten worden gewijzigd?

Ingebouwde methoden gebruiken

1.) fn_dblog: De inhoud van het SQL Server-transactielogboek kan online worden gelezen met behulp van verschillende impliciete functies. De eerste functie die we zullen proberen te gebruiken om de verloren gegevens te herstellen, is de fn_dblog . Het is een ongedocumenteerde framework-functie met tabelwaarde, die wordt gebruikt om een ​​duik te nemen in het SQL Server-transactielogboek en de inhoud van het dynamische segment van dat bestand te bekijken.

Om de fn_dblog() . te gebruiken functie, moet u twee parameters opgeven, het begin en het einde van de LSN van het logboek. Als u alle logboeken wilt bekijken die toegankelijk zijn in het dynamische segment van het SQL-transactielogboekbestand, kunt u de NULL-waarde voor deze twee parameters doorgeven. Omdat het resultaat terugkwam van het fn_dblog() werk dat 129 kolommen bevat, is het beter om alleen de segmenten te kiezen die de gegevens bevatten die u graag wilt zien en het resultaat te filteren om alleen de bewerking weer te geven die u van plan bent te herstellen. De LOP_INSERT_ROWS-bewerking wordt bijvoorbeeld vastgelegd wanneer een ander record wordt ingesloten, de LOP_DELETE_ROWS-bewerking wordt vastgelegd wanneer een nieuwe record wordt verwijderd en de LOP_MODIFY_ROW-bewerking wordt vastgelegd wanneer een huidige record wordt bijgewerkt. Het onderstaande script kan worden gebruikt om de update-instructies te controleren die op die database worden uitgevoerd:

2.) fn_dump_dblog(): Het daaropvolgende raamwerk werkte in functie, fn_dump_dblog(), heeft een voordeel ten opzichte van het fn_dblog()-werk dat het heel goed kan worden gebruikt om de back-up van het SQL Server-transactielogboek te lezen, ondanks de mogelijkheid om het online transactielogboekbestand te lezen. Aan de andere kant, om de functie fn_dump_dblog() te gebruiken, moet u 68 verplichte parameters opgeven, zoals weergegeven in het onderstaande script:

3.) DBCC-paginaopdracht: SQL Server geeft ons talloze DBCC-opdrachten die kunnen worden gebruikt om de verschillende soorten SQL Server-beheertaken uit te voeren. Een van deze ongedocumenteerde commando's is het DBCC Page-commando, dat kan worden gebruikt om de inhoud van de databasegegevens te lezen en online bestanden te loggen. Om de inhoud van het databaselogbestand te kunnen zien, moet u de databasenaam en de ID van het transactielogbestand opgeven. De ID van het Transactie Log-bestand kan worden opgehaald uit de onderstaande query.

Beperkingen van handmatige methoden om gegevens uit het SQL Server-transactielogboek te herstellen

  1. Moeilijk uit te voeren.
  2. Vereist sterke technische kennis.
  3. Hoog risico op gegevensverlies.

Deskundige oplossing voor Gegevens herstellen uit SQL Server transactielogboekbestand

Op het moment dat een database beschadigd is of de gegevens van de tabel per ongeluk verloren gaan of gewijzigd zijn, kan de lange tijd die nodig is om de gegevens opnieuw te creëren en te parseren met behulp van de impliciete strategieën niet voldoende zijn. Langs deze lijnen moeten we in de SQL Server-beheermarkt zoeken naar een tool die effectief en onmiddellijk kan worden gebruikt om de inhoud van het transactielogboekbestand te lezen en deze inhoud in een gebruiksvriendelijk formaat weer te geven.

SysTools SQL-logboekbestandlezer tool, die handig kan worden gebruikt om de inhoud van het online SQL-transactielogboekbestand te lezen. Door deze software te gebruiken kan de gebruiker gemakkelijk de transactielogbestanden van SQL Server lezen en analyseren INSERT / UPDATE / DELETE activiteiten. Deze professionele applicatie op Enterprise-Grade Level kan werken op zowel offline als online database-omgeving. Deze applicatie biedt ook de optie voor dynamische filters om een ​​selectief transactielogboekbestand te exporteren. Deze software ondersteunt de versie van SQL Server 2019.

Stappen om gegevens uit het SQL Server-transactielogboek te herstellen

  1. Download en installeer de SQL Log Analyser.

2. Selecteer nu de databaseoptie

3. Bekijk een voorbeeld van de gegevens van het transactielogboek van SQL Server.

4. Klik op de knop Exporteren om de logbestandgegevens te exporteren.

Conclusie

Ondanks het feit dat de handmatige techniek verwijderde items uit SQL-tabellen kan herstellen, is het vanwege de ingewikkeldheid en verveling geen voorgeschreven optie voor klanten. Het wordt eerder aanbevolen om een ​​ideale oplossing te gebruiken om gegevens te herstellen van het SQL Server-transactielogboekbestand.


  1. Wanneer sorteert SQL Server terugspoelen?

  2. 2 manieren om rijen te retourneren die geen numerieke waarden bevatten in Oracle

  3. Wat is de beste manier om database-inserts bulksgewijs vanuit c# in te voeren?

  4. Handmatig nieuwe RAC-instantie toevoegen