ich habe gerade ein kleines Verständnissproblem und zugegebenermaßen auch noch nicht allzuviele Erfahrungem mit MS SQL 2008. Die Transaktionlogs werden nicht "geshrinkt".
Des Status der MyDB ist u.a RECOVERY=FULL, IsAutoShrink, trotzdem werden die Backupdateien der Transaktionlogs immer größer und auch der Platz im Log wird nicht freigegeben (dbcc sqlperf(logspace)). Die Logs werden regelmäßig
gesichert (dump transaction to disk), aber auch nach einem manuellen CHECKPOINT und einem Fulldump (dump database) werden die Logs nicht kliener. Mir ist klar, das der aktive Part nicht freigegeben werden kann. Aber laut dbcc opentran() sind keine offenen
Transaktionen vorhanden.
D.h. im Moment muss ich, um die Logs zu verkleinern, jedes Mal folgende Schritte ausführen:
USE MyDB;
GO
ALTER DATABASE MyDB
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (Log, TRUNCATEONLY);
GO
ALTER DATABASE MyDB
SET RECOVERY FULL;
GO
Und danach muss natürlich wieder ein Full-Dump durchgeführt werden.
Habe ich da irgendwas übersehen? Wie bekomme ich den inaktiven Part in Log wieder freigegeben?
Hat eventell jemand einen Tip für mich, woran das liegen könnte bzw. wie ich die Logs auch im normalen Betrieb wieder verkleinern kann?
Gruss Jörg