Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Protokollraumnutzung
Sie können die Verwendung des Protokollraums mithilfe von DBCC SQLPERF (LOGSPACE) überwachen. Dieser Befehl gibt Informationen über den aktuell verwendeten Protokollspeicher zurück und gibt an, wann das Transaktionsprotokoll abgeschnitten werden muss. Weitere Informationen finden Sie unter DBCC SQLPERF (Transact-SQL). Informationen zur aktuellen Größe einer Protokolldatei, zur maximalen Größe und zur Option für die automatische Vergrößerung können Sie auch die Spalten size, max_size und growth für diese Protokolldatei in sys.database_files überprüfen. Weitere Informationen finden Sie unter sys.database_files (Transact-SQL).
Von Bedeutung
Es wird empfohlen, die Überladung des Protokolldatenträgers zu vermeiden.
Verkleinern der Größe der Protokolldatei
Um die physische Größe einer physischen Protokolldatei zu verringern, müssen Sie die Protokolldatei verkleinern. Dies ist nützlich, wenn Sie wissen, dass eine Transaktionsprotokolldatei nicht genutzten Speicherplatz enthält, den Sie nicht benötigen. Das Verkleinern einer Protokolldatei kann nur auftreten, wenn die Datenbank online ist und mindestens eine virtuelle Protokolldatei kostenlos ist. In einigen Fällen ist das Verkleinern des Protokolls bis nach der nächsten Protokollkürzung nicht möglich.
Hinweis
Faktoren wie eine lang andauernde Transaktion, die virtuelle Protokolldateien für einen längeren Zeitraum aktiv halten, können das Verkleinern von Protokollen einschränken oder sogar verhindern, dass das Protokoll überhaupt verkleinert werden kann. Informationen zu Faktoren, die die Logabschneidung verzögern können, finden Sie unter The Transaction Log (SQL Server).
Wenn Sie eine Protokolldatei verkleinern, werden mindestens eine virtuelle Protokolldatei entfernt, die keinen Teil des logischen Protokolls enthält (d. a. inaktive virtuelle Protokolldateien). Wenn eine Transaktionsprotokolldatei verkleinert wird, werden genügend inaktive virtuelle Protokolldateien vom Ende der Protokolldatei entfernt, um das Protokoll auf ungefähr die Zielgröße zu reduzieren.
So verkleinern Sie eine Protokolldatei (ohne Datenbankdateien verkleinern)
Protokolldatei-Verkleinerungsereignisse überwachen
To monitor log space
sys.database_files (Transact-SQL) (Siehe die Größe, die max_size und die Wachstum-Spalten für die Protokolldatei oder -dateien.)
Hinweis
Das Verkleinern von Datenbank- und Protokolldateien kann automatisch festgelegt werden. Es wird jedoch davon abgeraten, die automatische Verkleinerung zu verwenden, und die autoshrink-Datenbankeigenschaft ist standardmäßig auf FALSE festgelegt. Wenn autoshrink auf TRUE festgelegt ist, reduziert die automatische Verkleinerung die Größe einer Datei nur, wenn mehr als 25 Prozent des Speicherplatzes nicht verwendet werden. 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 Eigenschaft Auto Shrink auf der Optionen Seite – oder ALTER DATABASE SET Options (Transact-SQL) – verwenden Sie die Option AUTO_SHRINK.
Hinzufügen oder Vergrößern einer Protokolldatei
Alternativ können Sie Speicherplatz gewinnen, indem Sie die vorhandene Protokolldatei (sofern speicherplatz zulassen) vergrößern oder eine Protokolldatei zur Datenbank hinzufügen, in der Regel auf einem anderen Datenträger.
Verwenden Sie die ADD LOG FILE-Klausel der ALTER DATABASE-Anweisung, um der Datenbank eine Protokolldatei hinzuzufügen. Durch das Hinzufügen einer Protokolldatei kann das Protokoll vergrößert werden.
Verwenden Sie zum Vergrößern der Protokolldatei die MODIFY FILE-Klausel der ALTER DATABASE-Anweisung, wobei Sie die Syntax SIZE und MAXSIZE angeben. Weitere Informationen finden Sie unter ALTER DATABASE (Transact-SQL).
Optimieren der Größe des tempdb-Transaktionsprotokolls
Durch das Neustarten einer Serverinstanz wird die Größe des Transaktionsprotokolls der tempdb-Datenbank auf ihre ursprüngliche Größe vor der automatischen Vergrößerung zurückgesetzt. Dies kann die Leistung des tempdb-Transaktionsprotokolls verringern. Sie können diesen Aufwand vermeiden, indem Sie die Größe des tempdb-Transaktionsprotokolls nach dem Starten oder Neustart der Serverinstanz erhöhen. Weitere Informationen finden Sie in der tempdb-Datenbank.
Steuern des Wachstums einer Transaktionsprotokolldatei
Sie können die ALTER DATABASE (Transact-SQL) - Anweisung verwenden, um das Wachstum einer Transaktionsprotokolldatei zu verwalten. Beachten Sie Folgendes:
Um die aktuelle Dateigröße in KB-, MB-, GB- und TB-Einheiten zu ändern, verwenden Sie die Option GRÖßE.
Verwenden Sie die Option FILEGROWTH, um die Zuwachsgröße zu ändern. Der Wert 0 gibt an, dass die automatische Vergrößerung deaktiviert und kein zusätzlicher Speicherplatz zulässig ist. Ein kleiner automatischer Vergrößerungsschritt in einer Protokolldatei kann die Leistung verringern. Die Schrittweite für die Dateivergrößerung sollte für eine Protokolldatei stets groß genug sein, um häufige Erweiterungen zu vermeiden. Das Standardwachstum von 10 Prozent ist im Allgemeinen geeignet.
Informationen zum Ändern der Dateiwachstumseigenschaft in einer Protokolldatei finden Sie unter ALTER DATABASE (Transact-SQL).
Um die maximale Größe einer Protokolldatei in KB-, MB-, GB- und TB-Einheiten zu steuern oder das Wachstum auf UNLIMITED festzulegen, verwenden Sie die OPTION MAXSIZE.
Siehe auch
BACKUP (Transact-SQL)
Problembehandlung bei vollen Transaktionsprotokollen (SQL Server-Fehler 9002)