Freigeben über


Verwalten der Größe der Transaktionsprotokolldatei

In einigen Fällen kann es hilfreich sein, die physische Protokolldatei des Transaktionsprotokolls einer SQL Server Datenbank physisch zu verkleinern oder zu erweitern. Dieses Thema enthält Informationen zum Überwachen der Größe eines SQL Server Transaktionsprotokolls, zum Verkleinern des Transaktionsprotokolls, zum Hinzufügen oder Vergrößern einer Transaktionsprotokolldatei, zum Optimieren der Tempdb-Transaktionsprotokollwachstumsrate und zum Steuern des Wachstums einer Transaktionsprotokolldatei.

Überwachen der Verwendung von Protokollspeicherplatz

Der Protokollspeicherplatz kann mit DBCC SQLPERF (LOGSPACE) überwacht werden. Dieser Befehl gibt Informationen zum derzeit belegten Protokollspeicherplatz zurück und zeigt an, wann das Transaktionsprotokoll abgeschnitten werden muss. Weitere Informationen finden Sie unter DBCC SQLPERF (Transact-SQL).. Informationen zur aktuellen Größe einer Protokolldatei, ihrer maximalen Größe sowie der für die Datei festgelegten automatischen Vergrößerungsoption können Sie auch den Spalten size, max_size, and growth für die betreffende Protokolldatei in sys.database_files entnehmen. Weitere Informationen finden Sie unter sys.database_files (Transact-SQL).

Wichtig

Vermeiden Sie das Überlasten des Protokolldatenträgers.

Verkleinern der Protokolldatei

Sie müssen zum Reduzieren der physischen Größe einer physischen Protokolldatei die Protokolldatei verkleinern. Dies ist nützlich, wenn Sie wissen, dass eine Transaktionsprotokolldatei nicht verwendeten und nicht benötigten Speicherplatz enthält. Das Verkleinern einer Protokolldatei kann nur stattfinden, wenn die Datenbank online und mindestens eine virtuelle Protokolldatei frei ist. In einigen Fällen ist eine Verkleinerung des Protokolls möglicherweise erst nach der nächsten Protokollkürzung möglich.

Hinweis

Faktoren, wie z. B. lang andauernde Transaktionen, die virtuelle Protokolldateien über einen längeren Zeitraum hinweg aktiv halten, können die Protokollverkleinerung einschränken oder sogar gänzlich verhindern. Informationen zu Faktoren, die das Abschneiden von Protokollen verzögern können, finden Sie unter Das Transaktionsprotokoll (SQL Server).

Beim Verkleinern einer Protokolldatei werden virtuelle Protokolldateien entfernt, die keinen Teil des logischen Protokolls enthalten (d. h. inaktive virtuelle Protokolldateien). Beim Verkleinern einer Transaktionsprotokolldatei werden ausreichend viele inaktive, virtuelle Protokolldateien vom Ende der Protokolldatei entfernt, um das Protokoll in etwa auf die Zielgröße zu verkleinern.

So verkleinern Sie eine Protokolldatei (ohne die Datenbankdateien zu verkleinern)

So überwachen Sie Protokollverkleinerungsereignisse

To monitor log space

Hinweis

Für das Verkleinern von Datenbank- und Protokolldateien kann eine automatische Ausführung festgelegt werden. Es wird jedoch von einer automatischen Verkleinerung abgeraten, und die autoshrink-Datenbankeigenschaft ist in den Standardeinstellungen auf FALSE festgelegt. Wenn autoshrink auf TRUE festgelegt ist, wird die Größe einer Datei nur dann automatisch verkleinert, wenn mehr als 25 Prozent des Speicherplatzes ungenutzt sind. Die Datei wird entweder auf eine Größe verkleinert, bei der 25 Prozent der Datei aus nicht verwendetem Speicherplatz bestehen, oder auf die ursprüngliche Dateigröße, je nachdem, welcher Wert größer ist. Informationen zum Ändern der Einstellung der autoshrink Eigenschaft finden Sie unter Anzeigen oder Ändern der Eigenschaften einer Datenbank- verwenden Sie die Auto Shrink-Eigenschaft auf der Seite Optionen oder ALTER DATABASE SET-Optionen (Transact-SQL)-verwenden Sie die Option AUTO_SHRINK.

Hinzufügen oder Vergrößern einer Protokolldatei

Alternativ können Sie auch Speicherplatz schaffen, indem Sie entweder die vorhandene Protokolldatei vergrößern (sofern der Speicherplatz dies zulässt) oder der Datenbank eine neue Protokolldatei hinzufügen, wofür normalerweise ein anderer Datenträger verwendet wird.

  • Sie können der Datenbank eine Protokolldatei hinzufügen, indem Sie die ADD LOG FILE-Klausel der ALTER DATABASE-Anweisung verwenden. Durch das Hinzufügen einer Protokolldatei kann das Protokoll vergrößert werden.

  • Sie können die Protokolldatei vergrößern, indem Sie die MODIFY FILE-Klausel der ALTER DATABASE-Anweisung verwenden und die SIZE- und MAXSIZE-Syntax angeben. Weitere Informationen finden Sie unter ALTER DATABASE (Transact-SQL).

Optimieren der Größe des tempdb-Transaktionsprotokolls

Beim Neustarten einer Serverinstanz wird das Transaktionsprotokoll der tempdb -Datenbank auf seine ursprüngliche Größe (vor einer automatischen Größenerweiterung) zurückgesetzt. Dies kann eine Leistungsminderung des tempdb -Transaktionsprotokolls zur Folge haben. Der damit verbundene Verwaltungsaufwand lässt sich vermeiden, indem Sie nach dem Starten oder erneuten Starten der Serverinstanz die Größe des tempdb -Transaktionsprotokolls erhöhen. Weitere Informationen finden Sie unter tempdb Database.

Steuern der Vergrößerung einer Transaktionsprotokolldatei

Sie können die ALTER DATABASE -Anweisung (Transact-SQL) verwenden, um das Wachstum einer Transaktionsprotokolldatei zu verwalten. Beachten Sie Folgendes:

  • Verwenden Sie die Option SIZE, um die aktuelle Dateigröße in KB-, MB-, GB- und TB-Einheiten zu ändern.

  • Verwenden Sie die Option FILEGROWTH, um die Vergrößerungsschrittweite zu ändern. Der Wert 0 gibt an, dass die automatische Vergrößerung deaktiviert und kein zusätzlicher Speicherplatz zulässig ist. Die Einstellung der kleinen automatischen Vergrößerungsschrittweite einer Protokolldatei kann ebenfalls die Leistung beeinträchtigen. Die Schrittweite für die Dateivergrößerung sollte für eine Protokolldatei stets groß genug sein, um häufige Erweiterungen zu vermeiden. Die standardmäßige Vergrößerungsschrittweite von 10 Prozent ist hierfür im Allgemeinen gut geeignet.

    Informationen zum Ändern der Eigenschaft für die Dateivergrößerung in einer Protokolldatei finden Sie unter ALTER DATABASE (Transact-SQL).

  • Verwenden Sie die Option MAXSIZE, um die maximale Größe einer Protokolldatei in KB-, MB-, GB- und TB-Einheiten zu steuern oder die Vergrößerung auf UNLIMITED festzulegen.

Weitere Informationen

BACKUP (Transact-SQL)
Problembehandlung bei vollen Transaktionsprotokollen (SQL Server-Fehler 9002)