Rubrik: | VB-Versionen: VB6 | 03.12.12 |
Transaktionsprotokoll einer SQL-Datenbank verkleinern und klein halten Diese Vorgehensweise zeigt, wie sich das Transaktionsprotokoll (LOG-File) einer MS SQL-Datenbank verkleinern und auf Dauer klein halten lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 1.891 |
http://www.tools4vb.de/ | System: WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Dieses Thema beschäftigt ganz viele User: Wenn man Daten im MS SQL-Server speichert, wächst das Transaktionsprotokoll der Datenbank mit der Zeit auf eine Größe jenseits der GB-Grenze. Teilweise auch schon mal bis zu 100 GB!
Um dies zu verhindern sollte man bereits beim Anlegen der Datenbank die Eigenschaften für das automatische Vergrößern der LOG-Datei entsprechend festlegen (bspw. Anfangsgröße 1 MB, autom. vergörßern um 2 MB bis max. 100 MB).
Was aber, wenn es schon zu spät ist? In den Datenbank-Eigenschaften lässt sich die Größe jetzt nicht mehr einfach zurücksetzen!
In diesem Fall gehen Sie bitte wie folgt vor:
1. Erstellen Sie eine Datensicherung nur über das Transaktionsprotokoll. Klicken Sie hierzu mit der rechten Maustaste auf die Datenbank im SQL Server Management Studio und wählen den Befehl "Tasks - Sichern". Als Sicherungstyp wählen Sie "Transaktionsprotokoll".
Achten Sie darauf, dass in der Seite "Optionen" die Einstellung "Transaktionsprotokoll abschneiden" ausgewählt ist.
Starten Sie die Datensicherung durch Klick auf "OK".
2. LOG-Datei verkleinern
Klicken Sie wiederum im SQL Server Management Studio mit der rechten Maustaste auf die Datenbank und wählen den Befehl "Tasks - Vekleinern - Dateien". Wählen Sie als Dateityp "Protokoll". Im Bereich "Vekleinerungsoptionen" wählen Sie
den 2. Auswahlpunkt und tragen die neue Dateigröße ein (= Differenz zwischen aktueller Größe und verfügbarer Speicherplatz).
Starten Sie den Vorgang durch Klick auf "OK".
Überprüfen Sie die neue Dateigröße der LOG-Datei. Konnte diese noch nicht auf die gewünschte Größe verkleinert werden, wiederholen Sie den Vorgang 1 und 2 solange, bis die gewünschte Dateigröße erreicht wurde.
3. LOG-Datei dauerhaft klein halten
Um das Transaktionsprotokoll dauerhaft klein zu halten, können Sie - nachdem obige Schritte erfolgreich durchgeführt wurden - die Eigenschaften des Transaktionsprotokolls so festlegen, dass dieses eine bestimmte maximale Größe nicht
überschreitet.
4. Per VB-Programmcode das Transaktionsprotokoll autom. vekleinern
Mit nachfolgendem Code kann man dann auch das Transaktionsprotokoll autom. per Code klein halten. Die Befehle könnten bspw. 1 x pro Woche oder nach einer autom. Datensicherung aufgerufen werden.
Dim sFile As String Dim SQLDatabaseName As String sFile = App.Path & "\Backup.log" SQLDatabaseName = "Testdatenbank" ' Log-Datei sichern oConn.Execute "BACKUP LOG [" & SQLDatabaseName & "] TO DISK = '" & sFile & "' WITH INIT,COPY_ONLY" ' Log-Datei verkleinern (auf 2 MB) oConn.Execute "USE [" & SQLDatabaseName & "]" oConn.Execute "DBCC SHRINKFILE ('" & SQLDatabaseName & "_log' , 2)" ' Eigenschaften der autom. Größenanpassung der LOG-Datei ändern ' (max. 100 MB, Vergrößern um 2 MB) oConn.Execute "ALTER DATABASE [" & SQLDatabaseName & "] MODIFY FILE ( NAME = '" & _ SQLDatabaseName & "_log', MAXSIZE = 102400KB , FILEGROWTH = 2048KB )"