Inhaltsverzeichnis
    Uncategorized

    Wiederherstellung gelöschter Tabellensätze in SQL Server


    Inhaltsverzeichnis

      Zusammenfassung: Dieser Blog erklärt, wie man gelöschte Tabellendatensätze in SQL Server wiederherstellt. Es wird ein Beispiel gezeigt, wie gelöschte Datensätze aus einer SQL-Tabelle mithilfe einer Log Sequence Number (LSN) wiederhergestellt werden. Es erforscht auch Stellar Repair for MS SQL Software, um gelöschte Datensätze schnell und ohne Datenverlust wiederherzustellen.

      Wenn Sie versehentlich einen DROP- oder DELETE-Befehl für eine Tabelle mit einer falschen WHERE-Klausel ausgeführt haben und wichtige Datensätze verloren gegangen sind, können Sie diese mit einer der folgenden Methoden wiederherstellen.

      Hinweis: Die Trunkierungsvorgänge können nicht wiederhergestellt werden. Nur die Löschvorgänge können wiederhergestellt werden.

      Methoden zur Wiederherstellung gelöschter Tabellensätze in SQL Server

      Methode 1 – Verwendung der Log Sequence Number (LSN)

      Hinweis: Diese Methode funktioniert nicht, wenn die Sicherung des Transaktionsprotokolls beschädigt ist oder fehlt. Fahren Sie in diesem Fall mit der nächsten Methode fort.

      Jeder SQL Server-Transaktionsprotokolldatensatz wird durch eine Log-Sequenznummer (LSN) eindeutig identifiziert. Sie können Wiederherstellungssequenzen konstruieren, indem Sie die LSN eines Protokollsatzes verwenden, bei dem ein bedeutendes Ereignis aufgetreten ist.

      Nehmen wir ein Beispiel, um zu verstehen, wie Sie die Log-Sequenznummer-Methode verwenden können, um gelöschte Tabellensätze wiederherzustellen. In diesem Beispiel werden wir eine Datenbank und eine Tabelle erstellen, Zeilen in die Tabelle einfügen, einige Zeilen löschen, Informationen über gelöschte Daten abrufen und die Daten wiederherstellen.

      Schritte zur Wiederherstellung gelöschter Datensätze aus einer SQL-Tabelle mit LSN

      In diesem Abschnitt werden wir eine Testdatenbank und eine Tabelle erstellen, auf der wir eine DELETE-Operation durchführen werden. Dann werden wir die gelöschten Daten finden und sie mit Hilfe von LSN wiederherstellen.

      Schritt 1: Erstellen einer Datenbank

      Führen Sie die folgende Abfrage aus, um eine Datenbank namens “RecoverDeletedRecords” und eine Tabelle namens “Employee” zu erstellen:

      USE [master]; 

      GO 

      CREATE DATABASE RecoverDeletedRecords;

      GO

      USE RecoverDeletedRecords;  

      GO

      CREATE TABLE [Mitarbeiter] (

      [Sr.Nr.] INT IDENTITÄT,

      [Datum] DATETIME DEFAULT GETDATE (),

      [Stadt] CHAR (25) DEFAULT ‘Stadt1’);

      Abbildung 1 - Datenbank in SSMS erstellen
      Abbildung 1 – Datenbank in SSMS erstellen

      Schritt 2: Daten in die Tabelle einfügen

      Wir haben eine Tabelle mit dem Namen “RecoverDeletedRecords” und eine Tabelle “Employee” mit drei Spalten erstellt. Jetzt werden wir Zeilen in die Tabelle einfügen, indem wir die folgende Abfrage ausführen:

      USE RecoverDeletedRecords;

      GO

      INSERT INTO Employee DEFAULT VALUES;

      GO 100

      Abbildung 2 - Datensätze in eine neue Tabelle einfügen
      Abbildung 2 – Datensätze in eine neue Tabelle einfügen

      Schritt 3: Zeilen aus der Tabelle löschen

      Löschen wir nun einige Zeilen, indem wir Folgendes ausführen:

      USE RecoverDeletedRecords

      Weiter

      DELETE Mitarbeiter

      WHERE [Sr.Nr] < 10

      GO

      Select * from Mitarbeiter

      Abbildung 3 - Tabellenzeilen löschen
      Abbildung 3 – Tabellenzeilen löschen

      Wie in der obigen Abbildung zu sehen ist, wurden alle Zeilen mit einer Sr.Nr. kleiner als 10 aus der Tabelle “Mitarbeiter” gelöscht.

      Schritt 4: Informationen über gelöschte Zeilen abrufen

      Als nächstes werden wir Informationen über die gelöschten Zeilen erhalten, indem wir das Transaktionsprotokoll durchsuchen:

      USE RecoverDeletedRecords

      GO

      SELECT

       [Aktuelle LSN],  

       [Transaktions-ID],

           Betrieb,

           Kontext,

           AllocUnitName

      VON

          fn_dblog(NULL, NULL)

      WHERE

          Vorgang = ‘LOP_DELETE_ROWS’

      Abbildung 4 - Transaktions-ID der gelöschten Zeilen
      Abbildung 4 – Transaktions-ID der gelöschten Zeilen

      Nachdem wir die Transaktions-IDs der gelöschten Zeilen erhalten haben, müssen wir den Zeitpunkt ermitteln, zu dem die Zeilen gelöscht wurden.

      Schritt 5: Log-Sequenznummer des LOP_BEGIN_XACT Log-Records ermitteln

      Um den genauen Zeitpunkt zu ermitteln, zu dem die Zeilen gelöscht wurden, müssen wir die Transaktions-ID verwenden, um die LSN des Protokollsatzes LOP_BEGIN_XACT einer Transaktion zu erhalten:

      USE RecoverDeletedRecords

      GO

      SELECT

       [Aktuelle LSN],  

       Betrieb,

           [Transaktions-ID],

           [Anfangszeit],

           [Transaktionsname],

           [Transaktions-SID]

      VON

          fn_dblog(NULL, NULL)

      WHERE

          [Transaktions-ID] = ‘0000:0000020e’

      UND

          [Vorgang] = ‘LOP_BEGIN_XACT’

      Abbildung 5 - Aktuelle LSN des Transaktionsprotokolls
      Abbildung 5 – Aktuelle LSN des Transaktionsprotokolls

      Im obigen Screenshot sehen wir die aktuelle LSN der Transaktion zusammen mit Details wie dem Zeitpunkt ‘2021/03/15 19:36:59:337’, als eine DELETE-Anweisung mit der LSN ‘00000014:0000001a:0001’ unter der Transaktions-ID ‘0000:0000020e’ ausgeführt wurde. Um die Daten der gelöschten SQL-Datenbanktabelle wiederherzustellen, fahren Sie mit dem nächsten Schritt fort.

      Schritt 6: Gelöschte Datensätze in SQL Server wiederherstellen

      Um die gelöschten SQL-Tabellendatensätze wiederherzustellen, müssen wir die LSN-Werte von hexadezimaler in dezimale Form umwandeln.  Fügen Sie dazu ‘0x’ vor der Log-Sequenznummer ein, wie im folgenden Code gezeigt:

      -Wiederherstellung Vollsicherung mit Norecovery.

      RESTORE DATABASE RecoverDeletedRecords_COPY

          FROM DISK = ‘C:\Programme\Microsoft SQL Server\MSSQL10_50.STELLAR\MSSQL\Backup\RecoverDeletedRecords.bak’

      MIT

          MOVE ‘RecoverDeletedRecords’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.STELLAR\MSSQL\Backup\RecoverDeletedRecords.mdf’,

          MOVE ‘RecoverDeletedRecords_log’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.STELLAR\MSSQL\Backup\RecoverDeletedRecords.ldf’,

          ERSETZEN, NICHT WIEDERHERSTELLEN;

          GO

      -Wiederherstellung der Log-Sicherung mit der Option STOPBEFOREMARK zur Wiederherstellung der genauen LSN.

         RESTORE LOG RecoverDeletedRecords_COPY

      VON

          DISK = N’C:\Programme\Microsoft SQL Server\MSSQL10_50.STELLAR\MSSQL\Backup\RecoverDeletedRecords_tlogbackup.trn’

      MIT

          STOPBEFOREMARK = ‘lsn:0x00000014:0000001a:0001’

      Abbildung 6 - Gelöschte Datensätze wiederherstellen
      Abbildung 6 – Gelöschte Datensätze wiederherstellen

      Nachdem Ihre Daten wiederhergestellt sind, überprüfen Sie, ob die gelöschten Datensätze wiederhergestellt wurden. Führen Sie dazu die folgende Abfrage aus, um die ersten zehn Zeilen der Tabelle zu sehen, die (in Schritt 3) gelöscht wurden.

      USE RecoverDeletedRecords_COPY

      GO

      SELECT * from Mitarbeiter

      Wenn die gelöschten Tabellendatensätze nicht wiederhergestellt wurden, versuchen Sie, ein SQL-Wiederherstellungstool wie Stellar Repair for MS SQL zu verwenden, um die gelöschten Daten wiederherzustellen.

      Hinweis: Ersetzen Sie im obigen Code den Pfad ‘C:\Programme\Microsoft SQL Server\MSSQL10_50.STELLAR\MSSQL\Backup\RecoverDeletedRecords.bak’ durch den Pfad, in dem sich Ihre Sicherungsdatei befindet. Ersetzen Sie auch den Pfad der .mdf- und .ldf-Dateien durch den Pfad, in dem Sie die Datenbankdateien gespeichert haben.

      Methode 2 – Verwendung von SQL-Wiederherstellungssoftware

      Die SQL-Wiederherstellungssoftware von Stellar® kann Ihnen helfen, alle gelöschten Datensätze in einer SQL Server-Datenbank in wenigen einfachen Schritten wiederherzustellen. Neben den gelöschten Daten kann die Software auch alle anderen Objekte wie Ansichten, Auslöser, gespeicherte Prozeduren usw. wiederherstellen, wobei die Datenintegrität erhalten bleibt.

      Bevor wir weitermachen

      Bevor Sie die Software zum Wiederherstellen der Datensätze verwenden, müssen Sie sicherstellen, dass Ihr System die folgenden Voraussetzungen erfüllt:

      • Zunächst müssen Sie SQL Server installieren. Sie können jeden unter Windows installierten SQL Server verwenden.
      • Zweitens, stellen Sie sicher, dass Sie SQL Server Management Studio (SSMS) installiert haben.
      • Stellar Repair für MS SQL-Software

      Schritte zur Wiederherstellung gelöschter Tabellensätze mit Stellar Repair for MS SQL

      Laden Sie die Demoversion der SQL Recovery Software herunter, um gelöschte Zeilen oder beschädigte Datenbanken wiederherzustellen:

      Kostenloser Download für Windows
      • Starten Sie Stellar Repair for MS SQL Software. Die Hauptschnittstelle der Software öffnet sich mit der Anweisung, Ihre SQL Server-Datenbank zu stoppen und eine Kopie an einem anderen Ort zu erstellen. Drücken Sie OK.
      Abbildung 7 - Stellar Repair für MS SQL Hauptschnittstelle
      Abbildung 7 – Stellar Repair für MS SQL Hauptschnittstelle
      • Durchsuchen Sie die SQL-Datenbank-MDF-Datei, die Sie reparieren möchten. Wenn Sie den Speicherort der MDF-Datei nicht kennen, klicken Sie auf Suchen, um die Datei zu finden und auszuwählen:
      Abbildung 8 - Datenbank-MDF-Datei in Software auswählen
      Abbildung 8 – Datenbank-MDF-Datei in Software auswählen

      Hinweis: Wenn Sie nicht wissen, wo sich Ihre Datenbank befindet, können Sie sie in SSMS in den Datenbankeigenschaften auf der Seite Datendatei finden (siehe Abbildung unten).

      Abbildung 9 - Datenbankstandort in SSMS prüfen
      Abbildung 9 – Datenbankstandort in SSMS prüfen
      • Nachdem Sie die Datenbankdatei ausgewählt haben, wählen Sie die Option Gelöschte Datensätze einbeziehen und klicken Sie auf Reparieren.
      Abbildung 10 - Option Gelöschte Datensätze einbeziehen
      Abbildung 10 – Option Gelöschte Datensätze einbeziehen
      • Die Software fordert Sie auf, einen geeigneten Scanmodus für die Reparatur der Datenbankdatei auszuwählen. Wählen Sie “Standard-Scan” oder “Erweiterter Scan” und klicken Sie dann auf OK.
      Abbildung 11 - Auswahl des Scanmodus
      Abbildung 11 – Auswahl des Scanmodus
      • Klicken Sie auf OK, wenn sich das Meldungsfeld “Reparatur abgeschlossen” öffnet.
      Abbildung 12 - Meldungsfeld "Reparatur abgeschlossen
      Abbildung 12 – Meldungsfeld “Reparatur abgeschlossen
      • Die Software zeigt eine Vorschau der wiederherstellbaren Tabellensätze. Sie stellt auch andere DB-Objekte wie Ansichten, Synonyme, gespeicherte Prozeduren, Funktionen, Regeln, Standardwerte, Datentypen, Auslöser, Sequenzen und Baugruppen wieder her. Die Software zeigt auch einen Protokollbericht an, der Informationen wie die Datenbankgröße, die Sortierung, den Pfad der mdf-Datei und die Liste der Tabellen und Objekte enthält.
      Abbildung 13 - Protokollbericht
      Abbildung 13 – Protokollbericht
      • Klicken Sie anschließend im Menü Datei auf Speichern, um die wiederhergestellten Daten zu speichern.
      Abbildung 14 - Datenbank speichern
      Abbildung 14 – Datenbank speichern
      • Im Dialogfeld “Datenbank speichern” können Sie wählen, ob Sie die wiederhergestellten Daten in den Dateiformaten MDF, CSV, HTML oder XLS (Excel) speichern möchten. In diesem Beispiel werden wir MSSQL wählen:
      Abbildung 15 - Speichern von Optionen
      Abbildung 15 – Speichern von Optionen
      • Sie können eine neue Datenbank erstellen oder online mit der Datenbank arbeiten. Sie können in einer anderen SQL Server-Instanz wiederherstellen und den Authentifizierungstyp angeben, d.h. Windows-Authentifizierung oder SQL Server-Authentifizierung. Außerdem können Sie den Speicherort der Dateien der Datenbank angeben:
      Abbildung 16 - Authentifizierungstyp auswählen
      Abbildung 16 – Authentifizierungstyp auswählen
      • Klicken Sie auf Speichern.

      Die wiederhergestellten Tabellensätze und andere ausgewählte Daten werden in der reparierten MDF-Datei gespeichert.

      Sehen Sie sich den kompletten Arbeitsprozess der SQL Recovery Software an:

      Schlussfolgerung

      In diesem Artikel haben wir gelernt, wie man gelöschte Datensätze in SQL Server wiederherstellt. Diese Lösungen können in jeder SQL Server-Version unter Windows funktionieren. Wenn Sie eine vollständige Datenbanksicherung zur Verfügung haben, können Sie versuchen, gelöschte Datensätze mit Hilfe des Transaktionsprotokolls mit Log Sequence Number (LSN) wiederherzustellen. Wenn die Sicherung beschädigt ist, verwenden Sie Stellar Repair for MS SQL, um die gelöschten Daten in SQL Server oder in anderen Formaten wie Comma Separated Value (CSV)-Dateien, HTML oder XLS wiederherzustellen.

      Die SQL-Datenbank-Reparatur-Software hilft nicht nur bei der Wiederherstellung von gelöschten Zeilen, sondern stellt auch die SQL-Datenbank beschädigt durch Virenbefall, Hardware-Ausfall, oder andere Gründe.

      Was this article helpful?

      No NO

      Über den Autor

      Himanshu Shakya

      Himanshu is a Tech Enthusiast and Blogger at Stellar, with expertise in data recovery solutions and a keen interest in emerging technologies. Fluent in Japanese, he brings a diverse skill set to his role, contributing to global tech conversations. Outside of work, Himanshu enjoys playing chess, sharpening his strategic thinking and problem-solving skills in his spare time.

      Verwandter Beitrag

      WARUM STELLAR® WELTWEIT FÜHREND IST

      Warum Stellar wählen?

      • 0M+

        Kunden

      • 0+

        Jahre der Exzellenz

      • 0+

        F&E-Ingenieure

      • 0+

        Länder

      • 0+

        PARTNER

      • 0+

        Erhaltene Auszeichnungen