Ich habe eine Datenbank mit einer 350-MB- Datendatei (.mdf) und einer 4,9-GB-Protokolldatei (.ldf). Das Wiederherstellungsmodell ist auf festgelegt FULL
.
Wenn ich versuche, die Protokolldatei zu verkleinern, wird sie nicht verkleinert.
Ich weiß, dass das Verkleinern einer Datenbank nicht gut ist und nicht durchgeführt werden sollte. Aber ich versuche immer noch, es zu tun, um die Protokolldatei zu verkleinern.
Als ich rannte
DBCC SQLPerf(logspace)
Ich habe festgestellt, dass die Protokollgröße 4932 MB und der verwendete Protokollspeicher 98,76% beträgt !
Dann habe ich diesen Befehl ausprobiert
USE <databasename>;
DBCC loginfo;
Jetzt haben fast alle VLFs den Status 2, was bedeutet, dass alle verwendet werden.
Ich habe versucht, eine Protokollsicherung zu erstellen und die Protokolldatei anschließend zu verkleinern. Durch das Schrumpfen wurde die Größe nicht verringert.
Ich habe das Wiederherstellungsmodell auf geändert SIMPLE
und erneut versucht, es zu verkleinern, aber das hat auch nicht geholfen.
Ich habe nach offenen Transaktionen gesucht
DBCC opentran (database);
und festgestellt, dass keine Transaktion jetzt geöffnet ist.
Was hindert mich daran, die Protokolldatei zu verkleinern? Wie kann ich das lösen?
log_reuse_wait_desc
gabACTIVE_TRANSACTION
. Sobald die Transaktion abgeschlossen war, funktionierte der Shrink einwandfrei.