Wie kann eine Tabelle wiederhergestellt werden, wenn es keine Datensicherung gibt?

Falls Sie versehentlich einem DROP-Befehl ausgeführt haben und Sie eine Datenbanksicherung haben, können Sie relativ einfach die Tabelle wiederherstellen. Leider kommt es oft vor, dass eine Sicherung nicht verfügbar ist. Selbst wenn es keine Sicherung gibt, ist es unter Umständen möglich, eine gelöschte Tabelle wiederherzustellen.

Jeder DROP-Befehl wird komplett im Transaktionsprotokoll festgehalten. Solange die Datenbank sich im vollständigen Sicherungsmodus befindet, können die Daten durch eine point-in-time recovery zeitpunktgenau wiederhergestellt werden.

Da ein DROP vollständig protokolliert wird, kann der Befehl zurückgerollt werden, solange eine explizite Transaktion verwendet wird.

Das folgende Beispiel wird fehlschlagen:

DROP TABLE Customer

SELECT *
FROM Customer

Es erscheint die Fehlermeldung: Msg 208, Level 16, State 1 – weil die Customer Tabelle gelöscht wurde.

Folgendes Beispiel hingegen funktioniert, weil der DROP Befehl mittels ROLLBACK zurückgerollt wurde.

BEGIN TRAN 
DROP TABLE Customer

ROLLBACK 
SELECT *
FROM Customer

Falls die Transaktion, die den DROP-Befehl beinhaltet, nicht mehr aktiv ist (weil sie schon abgeschlossen wurde), kann auf die gelöschte Tabelle nicht mehr zugegriffen werden. Heißt das dann, dass Daten, die durch einen DROP-Befehl gelöscht wurden, nur noch durch eine vollständige Datenbanksicherung zu retten sind?

Zum Glück nicht, denn ApexSQL Recover kann Ihnen helfen!

ApexSQL Recover ist ein Tool, welches DELETE-, TRUNCATE- und DROP-Befehle rückgängig machen sowie korrupte oder beschädigte Daten korrigieren kann. ApexSQL Recover kann zusätzlich dazu noch BLOBs als Dateien wiederherstellen und somit auch bei Sharepoint- Umgebungen sehr hilfreich sein.

Um Daten vor einem DROP-Befehl wiederherzustellen, müssen Sie:

  1. ApexSQL Recover starten
  2. Wählen Sie “Recover lost data due to a DROP operation” aus
  3. Unter Select the database to recover step:
    • Wählen Sie den SQL Server aus, auf dem die Daten wiederhergestellt werden sollen
    • Geben Sie die Anmeldedaten ein, um sich mit dem SQL Server zu verbinden
    • Wählen Sie die Datenbank aus, von der die Daten versehentlich gelöscht wurden

    Klicken Sie auf Next

  4. Bei Are additional data sources available? wählen Sie No additional transaction logs are available aus

  5. Bei Select a recovery action wählen Sie Save recovery script to file und geben Sie an, wo die geretteten Daten als Datei gespeichert werden sollen.

  6. Klicken Sie auf Recover

Im Nu werden die gelöschten Daten ausgelesen und wiederhergestellt, ganz ohne nur eine Datenbanksicherung genutzt zu haben.

Übersetzer: William Durkin

July 29, 2015