SQL-Log-Datei wächst unbeschränkt an

Ein Problem, mit welchem schon mancher SQL-Admin Bekanntschaft gemacht hat und viel schlimmer noch, viele nicht einmal wissen, dass sich auf ihrem SQL Server eine solche Zeitbombe "ausbreitet". Das Transaktions-Protokoll des SQL Server wächst laufend weiter, obwohl täglich eine vollständige Datenbanksicherung durchgeführt wird!
Schuld daran ist nicht etwa der Microsoft SQL Server, sondern eine weitverbreitete Konfigurations-Kombination:

  • Die Datenbank wird mit dem Wiederherstellungsmodell (Recovery Model) FULL oder BULK LOGGED betrieben (s. DB-Optionen)
    Recovery Model
  • Die Wachstumseigenschaften des Transaktionsprotokolls sind auf automatisch wachsen, und dies unbeschränkt
    Log_Growth
  • Täglich wird eine vollständige Datenbanksicherung ausgeführt, in der Regel mit dem Wartungsplan (was nicht falsch ist!)

Der SQL Server wird nun angewiesen, alle Transaktionen im Protokoll zu speichern. Der Speicherplatz innerhalb des Protokolls wird erst wieder zum Überschreiben freigegeben, nachdem diese gesichert wurden. Eine vollständige Datenbanksicherung erstellt eine Kopie der Datenbank und speichert zudem alle Transaktionen, welche während des Zeitraums der Sicherung ausgeführt wurden in die Sicherungsdatei. Transaktionen, welche vor dem Sicherungstart ausgführt wurden, sind daher nur im aktuellen Protokoll enthalten und in keiner Sicherung, weshalb dieser Speicherplatz nicht überschireben werden darf. Erst wenn eine Transaktionsprotokoll-Sicherung ausgeführt wird, werden alle Transaktionen aus dem Log gesichert und der Platz steht für neue Transaktionsaufzeichnungen zur Verfügung.

Wenn eine Datenbank also mit dem Recovery Model FULL bzw. Bulk Logged betrieben wird, so ist zwingend eine regelmässige (in der Regel mehrmals täglich) Transaktionsprotokoll-Sicherung erforderlich!

Microsoft SQL Server 2008 bietet mit Policy Based Management wertvolle Hilfsmittel, um sich vor solchen Konstellationen bei der Konfiguration zu schützen. Dazu mehr in meinem nächsten Blog.

Bruno Stöckli

Über Bruno Stöckli

Geschäftsleitungs-Mitglied der IN4OUT it solutions ag. SQL-Spezie und Leichtathletik-Trainer.
Kommentar schreiben

*