Transaktionsprotokoll wächst und wächst

Frage:
Das Transaktionprotokoll wird immer größer und der freie Plattenplatz immer geringer.

Lösung:
Es gibt verschiedene Vorgehensweisen, die wiederum abhängig vom Wiederherstellungsmodell sind:

1. Wiederherstellungsmodell steht auf einfach (simple).
Die im Log vorgehaltenen Informationen sind für eine Wiederherstellung nicht mehr relevant. Eine Sicherung ist nicht möglich.
Es kann mit DBCC SHRINKFILE (Name des Logfiles, Minimalgröße in MB) verkleinert werden.

2. Wiederherstellungsmodell steht auf vollständig oder massenprotokolliert
Das Log sollte regelmäßig gesichert werden. Abgeschlossene Transaktionen werden dabei aus dem Log entfernt und der Platz wieder zur Verfügung gestellt. Ist das Log bereits größer als notwendig, wird die physische Datei durch das regelmäßige Backup nicht verkleinert. Dazu muss wieder DBCC SHRINKFILE verwendet werden. Eine regelmäßige Logsicherung sorgt lediglich dafür, dass das Log sich nicht unnötig vergrößert.

Mehr Informationen im KB-Artikel 272318.

Eine Brachial-Methode wäre mit Backup Log With No_Log oder Backup Log With Truncate_Only. Danach sollte schnellstmöglich eine vollständige Datenbanksicherung ausführt werden. Näheres dazu in der Beschreibung zu Backup in der SQL Server Dokumentation.

Ein verkleinertes Log muß auch wieder wachsen. Und das geht auf Kosten der Performance.
Je nach Art des Wiederherstellungsmodells und der Datenbank-Größe sollte eine gewisse Loggröße gehalten werden.


Vielen Dank für diesen Beitrag an Christa Kurschat.

/* übernommen aus der Original sqlfaq.de */