Announcement

Collapse
No announcement yet.

Daten zu einem bestimmten Zeitpunkt wiederherstellen (Transaktionsprotokoll)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten zu einem bestimmten Zeitpunkt wiederherstellen (Transaktionsprotokoll)

    Hallo,

    ich habe folgendes Problem: Ich habe in meiner MS-SQL-Datenbank versehentlich Daten aus einer Tabelle gelöscht.

    Gibt es bei MS-SQL 2000 Server die Möglichkeit die Daten zum Zeitpunkt vor dem Datenlöschen, mit Hilfe des Transaktionsprotokolls, wiederherzustellen, ohne dass vorher eine Sicherung/Backup mit MS-SQL erstellt wurde.

    In der Dokumentation habe ich nur die Möglichkeit der Datenwiederherstellung gefunden, wenn vor dem Wiederherstellungszeitpunkt eine Sicherung des Transaktionsprotokolls erstellt wurde.

    Vielen Dank für Eure Hilfe

    Claudius Reiner

  • #2
    Hallo,

    der MS SQL Server kann den Zustand der Datenbank bis zu einem bestimmten Zeitpunkt oder bis zu einer bestimmten Markierung wiederherstellen. Allerdings wird ein Backup in jedem Fall benötigt. Das folgende Szenario beschreibt den Mechanismus.

    1. Irgendwann wird ein Backup angelegt. <br>
    2. Der Benutzer löscht später aus Versehen wichtige Daten <br>
    3. Der Datenbank-Administrator führt ein aktuelles <b>Log</b>-Backup (kein vollständiges Datenbank-Backup!) <b>nach</b> dem "Unfall" durch. <br>
    4. Das letzte Backup (bzw. alle vorliegenden Log-Backups) wird wiederhergestellt, aber die Datenbank <b>nicht</b> finalisiert <br>
    5. Das Log-Backup wird bis zum Zeitpunkt des "Unfalls" wiederhergestellt und die Datenbank finalisiert.

    Das folgende Beispiel demonstriert dies, über <b>STOPAT</b> wird der Zeitpunkt definiert, bis zu dem alle Aktionen aus dem Transaktionsprotokoll (Log) wiederhergestellt werden sollen:
    <pre>
    USE master
    GO
    BACKUP LOG BackupTest TO DISK = 'f:\MSSQL_Backup\BackupTest_LogError.bak' WITH INIT
    GO
    RESTORE DATABASE BackupTest FROM DISK = 'f:\MSSQL_Backup\BackupTest.bak' WITH NORECOVERY
    GO
    RESTORE LOG BackupTest FROM DISK = 'f:\MSSQL_Backup\BackupTest_Log1.bak' WITH NORECOVERY
    GO
    RESTORE LOG BackupTest FROM DISK = 'f:\MSSQL_Backup\BackupTest_Log2.bak' WITH NORECOVERY
    GO
    DECLARE @ErrorDate DATETIME
    SELECT @ErrorDate = '19.10.2001 10:44:00'
    RESTORE LOG BackupTest FROM DISK = 'f:\MSSQL_Backup\BackupTest_LogError.bak' WITH RECOVERY, STOPAT = @ErrorDate
    GO
    </pre&gt

    Comment


    • #3
      Denn ein Backup gibt es nicht!

      Es gibt nur die Live Datenbank mit Translog.
      Es soll nun die Datenbank den Stand von heute morgen 10 Uhr mit Hilfe des Translog erstellt werden. Dafür müssten "nur" alle Aktionen mit Hilfe des Translog bis heute 10 Uhr rückgängig gemacht werden.

      Also: Der aktuelle Stand soll durch das Translog bis heute 10 Uhr zurück gesetzt werden.

      Ist das möglich?
      Wenn ja, wie?

      Danke
      Zuletzt editiert von Squicky; 19.03.2010, 22:13.

      Comment


      • #4
        Ich habe, dass dies nicht das richtige ist.
        Der Beitrag ist 7 Jahre alt.

        Du hast hier doch ein Thema erstellt

        http://entwickler-forum.de/showthread.php?t=60917

        Wie oft willst du das noch machen?
        Christian

        Comment

        Working...
        X