Wie schneide ich das Transaktionsprotokoll in einer SQL Server 2008-Datenbank ab?
Was sind die besten Möglichkeiten?
Ich habe dies in einem Blog wie folgt versucht:
1) Von der Einstellungsdatenbank bis zur einfachen Wiederherstellung, Verkleinern der Datei und erneuten Einstellen der vollständigen Wiederherstellung verlieren Sie tatsächlich Ihre wertvollen Protokolldaten und können den Zeitpunkt nicht wiederherstellen. Darüber hinaus können Sie nachfolgende Protokolldateien nicht verwenden.
2) Durch Verkleinern der Datenbankdatei oder Datenbank wird eine Fragmentierung hinzugefügt.
Es gibt viele Dinge, die Sie tun können. Beginnen Sie zunächst mit der folgenden Protokollsicherung mit dem folgenden Befehl, anstatt sie abzuschneiden und häufig zu verlieren.
BACKUP LOG [TestDb] TO DISK = N'C:\Backup\TestDb.bak'
GO
Entfernen Sie den Code von SHRINKING the file. Wenn Sie ordnungsgemäße Protokollsicherungen durchführen, wird Ihre Protokolldatei normalerweise (normalerweise werden auch Sonderfälle ausgeschlossen) nicht sehr groß.
quelle
Antworten:
Der sicherste und korrekteste Weg, eine Protokolldatei abzuschneiden, wenn sich die Datenbank im vollständigen Wiederherstellungsmodus befindet, besteht darin, eine Transaktionsprotokollsicherung durchzuführen (ohne
TRUNCATE_ONLY
. Dies wird in zukünftigen Versionen nicht mehr empfohlen und ist nicht ratsam).Es hört sich so an, als ob Sie Ihre Protokolldatei anschließend verkleinern möchten. In diesem Fall würden Sie einen
DBCC SHRINKFILE(yourTLogName)
Befehl ausführen . Es gibt einen optionalen zweiten Parameter für die angeforderte Größe, auf den sie verkleinert werden kann.quelle
Sie können das Protokoll auf dem Nullgerät sichern:
Oder Sie können das Wiederherstellungsmodell auf einfach und dann wieder auf voll / groß umstellen.
quelle
Wenn Sie sich nicht um Ihre Protokolldaten kümmern und diese nur entfernen möchten:
Ändern Sie das Wiederherstellungsmodell von vollständig in einfach und dann wieder in vollständig. Verkleinern Sie die Datei mit DBCC SHRINKFILE mit dem Argument TRUNCATEONLY
Der folgende Befehl ändert das Wiederherstellungsmodell von vollständig in einfach
Der folgende Befehl ändert das Wiederherstellungsmodell in "Voll"
Um den Namen der Protokolldatei zu ermitteln, können Sie die folgende Abfrage verwenden
Verkleinern Sie die Datei
Siehe Wie lautet der Befehl zum Abschneiden einer SQL Server-Protokolldatei? Weitere Informationen hierzu
quelle