Frage

Das Problem ist folgendes:

t0: Insert is made into my database
t1: Delete is executed
t2: Full backup is made
t3: Transaction log backup is made

Wie kann ich wiederherstellen den gelöschten Datensatz nach t3 (was jetzt ist)? Ich mag die Datenbank in einem Zustand zwischen t0 und t1. Die Protokollebene voll war.

Edit: Ich habe bereits DBCC LOG (DB-Namen, 3), scheint aber das Protokoll abgeschnitten. Es gibt nur 10 Stück, obwohl es müssen Tausende sein.

War es hilfreich?

Lösung

Replay Sie immer von einem vollständigen Protokoll starten einzuloggen, die Differentiale anwenden und dann den Protokollsicherungen. Die Zeitlinie ist immer nach vorne aus der vollständigen Sicherung, niemals rückwärts. So kommt man zum Zustand nach t0 (dh. Wiederherstellen der gelöschten Datensatz) Sie mit einer vollständigen Sicherung starten, die genommen wurde vor t0 und dann die Log-Sicherungen mit Stopp bei t0 gelten.

Andere Tipps

Obwohl keine ideale Lösung, können Sie versuchen, die Wiederherstellung Datenbanksicherung in separate Datenbank, zu vergleichen, Datenbanken und manuell die erforderlichen Änderungen vornehmen.

Eine andere Möglichkeit ist es, eine dritte Partei Transaktionsprotokoll-Reader zu verwenden wie ApexSQL Log .

Lance,

Das Transaktionsprotokoll ist nicht zu sehen Transaktionen entwickelt. Es ist nicht wirklich diese Art von Protokoll. Plus, wenn Sie die Transaktionsprotokollsicherung haben, dass die Protokolldatei haben abgeschnitten würde, da die Information wurde in einer Datei gesichert.

Auch erwähnenswert, dass, wenn Sie eine Datenbank in das vollständige Wiederherstellungsmodell setzen, ist es tatsächlich im Einfach-Modus bleibt, bis Sie eine vollständige Datenbanksicherung zu tun. Daher wurde, wenn kein Backup vor t0 genommen, dann kann man nicht in diesem Zustand zurückgehen.

Rob

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top