Es wird automatisch abgeschnitten, aber das ist ganz anders zu schrumpfen. Durch das Abschneiden wird der Protokollspeicherplatz für die Wiederverwendung zurückgewonnen. Durch physisches Verkleinern wird die Dateigröße verringert, um Speicherplatz für das Betriebssystem freizugeben. Wenn Ihr Protokoll auf die aktuelle Größe angewachsen ist, wächst es wahrscheinlich wieder, wenn Sie es verkleinern.
Ich würde vorschlagen, einen Überblick über die typische und maximale Protokollnutzung Ihres Systems zu erhalten. Die folgende Abfrage (nicht meine, die von Glen Berrys DMV-Skripten unterstützt wird) kann manuell ausgeführt werden oder Sie können die Ausgabe über einen Agentenjob in einer Tabelle erfassen. Wenn Sie es etwa eine Woche lang in einer Tabelle protokollieren, erhalten Sie ein Bild der typischen Verwendung und vor allem, wenn ein Prozess dazu führt, dass das Protokoll über Ihre Erwartungen hinaus wächst.
SELECT
db.[name] AS [Database Name]
, db.recovery_model_desc AS [Recovery Model]
, db.log_reuse_wait_desc AS [Log Reuse Wait Description]
, ls.cntr_value AS [Log Size (KB)]
, lu.cntr_value AS [Log Used (KB)]
, CAST(
CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT)
AS DECIMAL(18,2)
) * 100 AS [Log Used %]
, db.[compatibility_level] AS [DB Compatibility Level]
, db.page_verify_option_desc AS [Page Verify Option]
, db.is_auto_create_stats_on, db.is_auto_update_stats_on
, db.is_auto_update_stats_async_on, db.is_parameterization_forced
, db.snapshot_isolation_state_desc, db.is_read_committed_snapshot_on
FROM sys.databases AS db
INNER JOIN sys.dm_os_performance_counters AS lu
ON db.name = lu.instance_name
INNER JOIN sys.dm_os_performance_counters AS ls
ON db.name = ls.instance_name
WHERE lu.counter_name LIKE N'Log File(s) Used Size (KB)%'
AND ls.counter_name LIKE N'Log File(s) Size (KB)%'
AND ls.cntr_value > 0
OPTION (RECOMPILE);
Transaktionsprotokollabschneidung beschreibt sowohl das Wann als auch das Warum des Protokollabschneidens.
Wenn Protokolldatensätze niemals aus dem Transaktionsprotokoll gelöscht würden, würde dies möglicherweise den gesamten Speicherplatz füllen, der für die physischen Protokolldateien verfügbar ist. Durch das Abschneiden des Protokolls wird automatisch Speicherplatz im logischen Protokoll für die Wiederverwendung durch das Transaktionsprotokoll freigegeben.
Faktoren, die das Abschneiden von Protokollen verzögern können, sind eine nützliche Referenz, um zu verstehen, warum Ihr Protokoll möglicherweise nicht abgeschnitten wird und daher größer als erwartet wird.