vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik:    |   VB-Versionen: VB603.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 OtterBewertung:  Views:  1.891 
http://www.tools4vb.de/System:  WinXP, Win7, Win8, Win10, Win11kein 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".

Sicherungstyp Transaktionsprotokoll

Achten Sie darauf, dass in der Seite "Optionen" die Einstellung "Transaktionsprotokoll abschneiden" ausgewählt ist.

Sicherungstyp Transaktionsprotokoll

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).

Transaktionsprotokoll verkleinern

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.

Eigenschaften Transaktionsprotokoll

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 )"



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.