Datenbank ohne Transaktionsprotokoll sichern


8

Gibt es eine Möglichkeit, beim Sichern einer Datenbank das Transaktionsprotokoll in dieser Sicherung auszuschließen? Oder denke ich falsch darüber nach und um die ursprüngliche Datenbank wiederherzustellen, ist der Inhalt des Transaktionsprotokolls erforderlich?

Ich kann das Transaktionsprotokoll nicht verkleinern, da die Datenbank die Replikation verwendet und ich die Replikation unterbrechen müsste.

Wenn ich diesen Befehl ausführe und dann die Datenbank wiederherstelle, wird eine 50-GB-Protokolldatei zurückgegeben:

BACKUP DATABASE DatabaseName TO DISK = 'c:\temp\Database.bak'

Ich muss die wiederhergestellte Datenbank in einfach ändern und dann die Protokolldatei verkleinern, bevor die 50 GB freigegeben werden. Ich kann die ursprüngliche Datenbank nicht in einfach ändern, da es sich um eine replizierte Kopie handelt.

Antworten:


6

Es sieht so aus, als ob Sie hier verschiedene Konzepte verwirren. Beginnen Sie mit den Themen Transaktionsprotokollverwaltung und Sicherungsübersicht in Books Online.

Ist das Hauptproblem, dass das Transaktionsprotokoll beim Wiederherstellen der vollständigen Sicherung auf einem anderen Server mehr Speicherplatz beansprucht, als Sie zur Verfügung haben?

Wenn ja, der Hack , den ich in einer Antwort auf die Frage beschrieben habe Ist es möglich, SQL-Server-Bak wiederherzustellen und das Protokoll gleichzeitig zu verkleinern? könnte nützlich sein.

Wächst und wächst Ihr Transaktionsprotokoll, weil Ihre Datenbank vollständig wiederhergestellt wird, Sie jedoch keine Protokollsicherungen durchführen? Sehen Sie hier und hier .

Gibt es eine Möglichkeit, das Transaktionsprotokoll in dieser Sicherung auszuschließen, wenn ich eine Datenbank in einer Bak-Datei sichere?

Nein. Eine Datensicherung enthält einen Teil des Transaktionsprotokolls, zumindest den Abschnitt des Protokolls, der seit dem Start der Sicherung erstellt wurde. Es sollte jedoch kein wesentlicher Teil des Protokolls sein, es sei denn, Sie haben sehr lange laufende Transaktionen.

Beachten Sie, dass beim Wiederherstellen einer Datensicherung die Datenbank mit denselben Daten- und Protokolldateigrößen wie in der Quelldatenbank neu erstellt wird, unabhängig davon, wie voll die Datendatei war oder wie groß der aktive Teil des Protokolls war. Wenn dies das Problem ist, das Sie haben, lesen Sie meinen früheren Hack, um einen Mangel an Speicherplatz für die Wiederherstellung zu umgehen.

Oder denke ich falsch darüber nach, um die ursprüngliche Datenbank wiederherzustellen, ist der Inhalt des Transaktionsprotokolls erforderlich?

Siehe oben, ein Teil des Protokolls wird in eine vollständige Sicherung einbezogen.

Ich kann das Transaktionsprotokoll nicht verkleinern, da die Datenbank die Replikation verwendet und ich die Replikation unterbrechen müsste.

Kein Grund, warum Sie das Protokoll bei vorhandener Replikation nicht verkleinern können (Sie können nur den inaktiven Teil verkleinern), aber:

  • Die Größe Ihrer Datensicherung spielt keine Rolle.
  • Es wird wahrscheinlich wieder auf seine aktuelle Größe wachsen.
  • Das große Transaktionsprotokoll ist wahrscheinlich darauf zurückzuführen, dass keine Protokollsicherungen durchgeführt wurden.
  • Sie sollten das Protokoll nicht verkleinern .

Ja, das Problem ist, dass mein Server nicht genügend Speicherplatz zum Speichern der Sicherungsdatei und der wiederhergestellten Datenbank hat. Das Problem des Protokolls "wächst, wächst" stimmt, aber das liegt bei unserem Datenbankadministrator - das liegt nicht in meiner Verantwortung.
Peter

Wenn dies der Fall ist, verwenden Sie den Hack , um einen komprimierten Ordner wiederherzustellen.
Mark Storey-Smith
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.