Sql-Server

使用日誌備份的安靜數據庫上的指數日誌文件增長

  • March 8, 2021

我有一個處於完全恢復模式的小型(~3GB)數據庫,在午夜進行完全備份,在中午進行事務日誌備份。

儘管是一個幾乎沒有任何活動的測試數據庫,但日誌文件(和事務日誌備份)的大小呈指數增長:

作為比較,相同數據庫的幾乎完全相同的生產版本具有小於 100MB 的事務日誌備份(相同的計劃)。

自動增長設置為 10%,所以每個新的 VLF 最終都會比上一個大 10%,但對我來說,為什麼一天要創建幾次新的 VLF 是個謎!沒有打開的事務,當我昨晚檢查 DBCC LOGINFO 時,有許多狀態為 0 的大型 VLF,所以日誌備份被截斷了。今天早上他們都是狀態2。

今天早上定期進行 LOGINFO 和 LOGSPACE 檢查,我看到日誌擴展為添加 VLF,儘管最後一個幾乎沒有:

日誌資訊增加

之前的大小約為 6369MB,因此 VLF 使用了大約 25/700MB。

在活動的 VLF 遠端滿之前,有什麼東西會導致 SQL Server 移動到新的 VLF 上嗎?

編輯:

Trace 顯示 90 分鐘的收縮和增長周期

你檢查過錯誤日誌嗎?執行 select * from sys.databases 並查看 log_reuse_wait_desc 列。執行 DBCC OPENTRAN 並查看是否有任何打開的活動事務?

查詢預設跟踪並獲取文件增長發生的時間 https://www.mssqltips.com/sqlservertip/3445/using-the-sql-server-default-trace-to-audit-events/

引用自:https://dba.stackexchange.com/questions/286658