Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Möglichkeiten zum Wiederherstellen von Daten aus der SQL Server-Transaktionsprotokolldatei

Zusammenfassung: Häufig suchen SQL-Datenbankadministratoren nach Möglichkeiten, Daten aus SQL Server-Transaktionsprotokollen wiederherzustellen. Der Benutzer kann diesen Artikel lesen, um diese Aufgabe auszuführen. Wir haben den bestmöglichen und auch einfachsten Weg zur Wiederherstellung von Daten aus einer (.ldf) Datei angegeben. Falls Sie mit Datenbankbeschädigungsproblemen konfrontiert sind und Datenbankobjekte wiederherstellen möchten, versuchen Sie es mit SQL-Datenbank wiederherstellen Software. Für weitere Informationen kann der Benutzer diesen Artikel lesen.

Es gibt Zeiten, in denen Kunden in ihren SQL Server-Datenbanken mit beklagenswerten Datenbankumständen konfrontiert sind. Die Situationen könnten während der Verwaltung und Unterstützung ihrer Datenbankdateien auftreten. Manchmal werden die Datenbankobjekte unbeabsichtigt gelöscht, wodurch Datenbankadministratoren mit zahlreichen Problemen konfrontiert werden. Um anschließend zum normalen Arbeitsprozess zurückzukehren, sollten die Dateien wieder in der SQL Server-Datenbank wiederhergestellt werden.

Das SQL Server-Transaktionsprotokoll spielt eine wichtige Rolle bei der Wiederherstellung gelöschter Daten für den Fall, dass Sie fälschlicherweise den DELETE- oder UPDATE-Vorgang mit einer unangemessenen Bedingung oder ohne Filterbedingung ausführen. Dies kann erreicht werden, indem die Aufzeichnungen abgehört werden, die in dieser Black Box abgelegt sind, die als SQL Server-Transaktionsprotokolldatei bekannt ist.

So stellen Sie Daten aus der SQL Server-Transaktionsprotokolldatei wieder her

Um die verschiedenen Techniken zu analysieren, die wir verwenden können, um Daten aus der SQL Server-Transaktionsprotokolldatei wiederherzustellen, erstellen wir eine weitere Datenbank mit einer einzigen Tabelle, wobei wir das folgende Skript verwenden:

Nachdem wir die Datenbank und die Tabelle erstellt haben, werden wir diese Tabelle mit 30 Datensätzen füllen, indem wir die INSERT INTO T-SQL-Anweisung darunter verwenden:

Da noch keine Sicherung von der Datenbank erstellt wurde, wie können wir die Daten der Tabelle wiederherstellen, wenn der darunter liegende UPDATE-Befehl über dieser Tabelle ausgeführt wird, wobei die nowhere-Anweisung verwendet wird, um die zu ändernden Daten zu filtern?

Eingebaute Methoden verwenden

1.) fn_dblog: Der Inhalt des SQL Server-Transaktionsprotokolls kann mithilfe verschiedener impliziter Funktionen online gelesen werden. Die erste Funktion, die wir verwenden werden, um die verlorenen Daten wiederherzustellen, ist fn_dblog . Es handelt sich um eine undokumentierte Framework-Tabellenwertfunktion, die verwendet wird, um das SQL Server-Transaktionsprotokoll zu durchsuchen und den Inhalt des dynamischen Segments dieser Datei anzuzeigen.

Um das fn_dblog() zu nutzen Funktion müssen Sie zwei Parameter angeben, die Anfangs- und die End-LSN des Protokolls. Um alle Protokolle anzuzeigen, auf die im dynamischen Segment der SQL-Transaktionsprotokolldatei zugegriffen werden kann, können Sie den NULL-Wert für diese beiden Parameter übergeben. Da das Ergebnis der fn_dblog()-Arbeit 129 Spalten enthält, ist es besser, nur die Segmente auszuwählen, die die gewünschten Daten enthalten, und das Ergebnis zu filtern, um nur die Operation anzuzeigen, die Sie wiederherstellen möchten. Beispielsweise wird die Operation LOP_INSERT_ROWS protokolliert, wenn ein anderer Datensatz eingebettet wird, die Operation LOP_DELETE_ROWS wird protokolliert, wenn ein neuer Datensatz gelöscht wird, und die Operation LOP_MODIFY_ROW wird protokolliert, wenn ein aktueller Datensatz aktualisiert wird. Das folgende Skript kann verwendet werden, um die Aktualisierungsanweisungen zu überprüfen, die für diese Datenbank ausgeführt werden:

2.) fn_dump_dblog(): Das nachfolgende Framework funktionierte in Funktion, fn_dump_dblog(), hat einen Vorteil gegenüber der Arbeit von fn_dblog(), dass es trotz der Möglichkeit, die Online-Transaktionsprotokolldatei zu lesen, sehr gut zum Lesen der SQL Server-Transaktionsprotokollsicherung verwendet werden kann. Andererseits müssen Sie, um die Funktion fn_dump_dblog() verwenden zu können, 68 obligatorische Parameter angeben, wie im folgenden Skript zu sehen ist:

3.) DBCC-Seitenbefehl: SQL Server gibt uns unzählige DBCC-Befehle, die verwendet werden können, um die verschiedenen Arten von SQL Server-Verwaltungsaufgaben auszuführen. Einer dieser undokumentierten Befehle ist der Befehl DBCC Page, mit dem der Inhalt der Datenbankdaten gelesen und Online-Dateien protokolliert werden können. Um den Inhalt der Datenbankprotokolldatei zu sehen, müssen Sie den Datenbanknamen und die ID der Transaktionsprotokolldatei angeben. Die ID der Transaktionsprotokolldatei kann aus der Abfrage unten wiederhergestellt werden.

Einschränkungen manueller Methoden zur Wiederherstellung von Daten aus dem SQL Server-Transaktionsprotokoll

  1. Schwierig durchzuführen.
  2. Erfordert starkes technisches Wissen.
  3. Hohes Risiko von Datenverlust.

Expertenlösung für Daten aus der SQL Server-Transaktionsprotokolldatei wiederherstellen

An dem Punkt, an dem eine Datenbank beschädigt ist oder die Daten der Tabelle fälschlicherweise verloren gehen oder geändert werden, kann die lange Zeit, die erforderlich ist, um die Daten mithilfe der impliziten Strategien neu zu erstellen und zu analysieren, nicht angemessen sein. In diesem Sinne müssen wir auf dem SQL Server-Verwaltungsmarkt nach einem Tool suchen, das effektiv und sofort verwendet werden kann, um den Inhalt der Transaktionsprotokolldatei zu lesen und diesen Inhalt in einem einfach zu verwendenden Format anzuzeigen.

SysTools SQL-Protokolldateileser Tool, das praktisch zum Lesen des Inhalts der Online-SQL-Transaktionsprotokolldatei verwendet werden kann. Durch die Verwendung dieser Software kann der Benutzer die SQL Server-Transaktionsprotokolldateien einfach lesen und analysieren INSERT / UPDATE / DELETE Operationen. Diese professionelle Anwendung auf Unternehmensebene kann sowohl in einer Offline- als auch in einer Online-Datenbankumgebung arbeiten. Außerdem bietet diese Anwendung dynamische Filteroptionen zum Exportieren einer selektiven Transaktionsprotokolldatei. Diese Software unterstützt die Version SQL Server 2019.

Schritte zum Wiederherstellen von Daten aus dem SQL Server-Transaktionsprotokoll

  1. Laden Sie den SQL Log Analyser herunter und installieren Sie ihn.

2. Wählen Sie nun die Datenbankoption aus

3. Zeigen Sie eine Vorschau der Daten der SQL Server-Transaktionsprotokolldatei an.

4. Klicken Sie auf die Schaltfläche „Exportieren“, um die Protokolldateidaten zu exportieren.

Schlussfolgerung

Obwohl die manuelle Methode gelöschte Elemente aus SQL-Tabellen wiederherstellen kann, ist sie aufgrund ihrer Kompliziertheit und Langweiligkeit keine vorgeschriebene Option für Kunden. Stattdessen wird empfohlen, eine ideale Lösung zum Wiederherstellen von Daten aus der SQL Server-Transaktionsprotokolldatei zu verwenden.