Ich bin kein SQL-Experte und werde jedes Mal daran erinnert, wenn ich etwas tun muss, das über die Grundlagen hinausgeht. Ich habe eine Testdatenbank, die nicht sehr groß ist, aber das Transaktionsprotokoll ist sehr groß. Wie kann ich das Transaktionsprotokoll leeren?
Hier ist eine einfache und sehr unelegant & potentiell gefährliche Methode.
Ich vermute, dass Sie keine Log-Backups durchführen. (Dadurch wird das Protokoll abgeschnitten). Ich empfehle Ihnen, das Wiederherstellungsmodell von voll auf einfach zu ändern. Dadurch wird die Aufblähung des Protokolls verhindert.
Wenn Sie die Transaktionsprotokolle nicht für Wiederherstellungen verwenden (d.h. Sie machen nur vollständige Backups), können Sie den Wiederherstellungsmodus auf "Einfach" setzen, und das Transaktionsprotokoll wird in Kürze schrumpfen und sich nie wieder füllen.
Wenn Sie SQL 7 oder 2000 verwenden, können Sie die Option "truncate log on checkpoint" in der Registerkarte Datenbankoptionen aktivieren. Dies hat den gleichen Effekt.
In Produktionsumgebungen ist dies natürlich nicht zu empfehlen, da Sie nicht in der Lage sind, einen bestimmten Zeitpunkt wiederherzustellen.
Um die Protokolldatei zu kürzen:
Um die Protokolldatei zu verkleinern:
Sicherungsprotokoll [DBName] mit No_Log
Verkleinern Sie die Datenbank entweder durch:
Mit dem Enterprise Manager :- Rechtsklick auf die Datenbank, Alle Aufgaben, Datenbank verkleinern, Dateien, Protokolldatei auswählen, OK.
Mittels T-SQL :- Dbcc Shrinkfile ([Log_Logical_Name])
Sie können den logischen Namen der Protokolldatei herausfinden, indem Sie sp_helpdb ausführen oder in den Eigenschaften der Datenbank im Enterprise Manager nachsehen.