Tail Log Backup bei einer Wiederherstellung?

9

Wenn ich eine Wiederherstellung einer Datenbank von einem Produktionsserver auf einen Nichtproduktionsserver durchführe, verwende ich normalerweise die Option WITH REPLACE, wenn ich vergesse, dass eine Fehlermeldung angezeigt wird, dass das Endprotokoll nicht gesichert wird.

Laut MSDN sollte ich vor dem Wiederherstellen tatsächlich mein Endprotokoll sichern:

Wenn die Datenbank online ist und Sie einen Wiederherstellungsvorgang für die Datenbank ausführen möchten, sichern Sie zunächst das Ende des Protokolls. Um einen Fehler für eine Online-Datenbank zu vermeiden, müssen Sie die Option… WITH NORECOVERY der BACKUP Transact-SQL-Anweisung verwenden.

Was sind einige Gefahren oder Nachteile meiner Arbeitsweise? Warum ist es für mich von Vorteil, das Endprotokoll zu sichern?

Ich verwende SQL Server 2008R2, gehe jedoch davon aus, dass diese Abfrage für die meisten neueren Versionen von SQL Server relevant ist. Sie wurde daher zunächst nicht als solche gekennzeichnet.

Paul
quelle
6
Ich denke, das bedeutet, wenn Sie am selben Speicherort wiederherstellen möchten (und möglicherweise zusätzliche Transaktionsprotokolle anwenden möchten). Wenn Sie nur eine einfache Kopie der Datenbank an anderer Stelle wiederherstellen und die Protokollkette nicht verwalten müssen, verwende ich die von Ihnen verwendete Methode. Ich könnte sogar WITH COPY_ONLYfür das Backup verwenden.
Aaron Bertrand

Antworten:

4

Wenn Sie das Ende des Protokolls nicht sichern, verlieren Sie alle Transaktionen, die seit dem letzten Sichern der Datenbank aufgetreten sind.

JoseTeixeira
quelle
1
Ja, das habe ich verstanden. Trotzdem denke ich, dass Ihre Antwort mich dazu gebracht hat, die Lücke in meinem Denken zu schließen. Die Nicht-Produktions-Datenbank wird nie gesichert, daher verliere ich die gesamte Datenbank, indem ich sie trotzdem wiederherstelle. Warum sollte mich das Endprotokoll interessieren? Aber der MSDN-Gedanke ist, dass ich meine Datenbank immer sichern werde. Das einzige Bit, das momentan nicht gesichert wird, ist das Endprotokoll, daher soll ich es sichern. Für mein spezifisches Szenario einer vorübergehenden Nichtproduktions-DB, die niemanden interessiert, ist das Sichern des Endprotokolls daher nicht vorteilhaft.
Paul
2
Vollkommen richtig. Wenn Sie nur Daten in eine Nicht-Produktionsumgebung bringen möchten und sich nicht wirklich um das kümmern, was sich dort befand, gibt es überhaupt kein Problem.
JoseTeixeira