每週末收縮 T-Log 文件
最近我們的 SQL Server 日誌驅動器包含所有 T-Log 文件開始快速增長。
注意事項
- 我們將驅動器空間擴展到 100 GB。
- 它是 AOAG 環境,SQL Server 2014。
- 我們每 15 分鐘定期備份一次 T-Log(但沒有釋放日誌驅動器空間,並且日誌驅動器每周越來越多,50 GB 很多)。
- 我們不能每次都擴大驅動力。
- 找到了 Rebuild-Index 任務的原因。
- 我為此部署了 Ola Hallengrens 程式碼來進行索引優化。
- 重建任務佔用空間很大,近 15 分鐘佔用驅動器為 50 GB。
我一直在考慮在索引優化作業完成後立即執行此操作(索引優化的 Ola Hallengrens 程式碼)。我計劃每週縮減所有日誌文件。
每週日@10:00 PM:
- 所有 AVAILABILITY_GROUP_DATABASES 的索引優化
- 收縮所有 AVAILABILITY_GROUP_DATABASES 日誌文件。
請在我遇到麻煩之前糾正我的想法。因為隨著空間的不斷增加,即使事務日誌備份也無濟於事。
除了縮小日誌文件(不推薦)之外,在這種情況下應該採取什麼行動。
請任何專家的建議都非常感謝。
謝謝你的幫助。
我建議正確調整日誌文件的大小,而不是定期縮小它。
因為您正在重建索引,所以您將增加日誌文件,因為索引將被寫入事務日誌文件。這意味著您的最大索引應該適合事務日誌文件。
如果您的數據庫處於完全恢復模式,您可以嘗試更頻繁地進行 logbackups 以防止它失控。(儲存在 transactionlog 文件中的多個索引重建)
如果您的數據庫處於簡單模式,則情況並非如此。
當您的事務日誌文件增長時,您將創建稱為虛擬日誌文件(事務日誌文件內的結構)的東西,這可能會導致幾個問題。(更多資訊:https ://blogs.msdn.microsoft.com/saponsqlserver/2012/02/22/too-many-virtual-log-files-vlfs-can-cause-slow-database-recovery/ )
我會先縮小您的文件,然後將其增長到適當的大小以避免創建太多 VLF。但不要每週縮小它們。
您可能會發現每隔 10 分鐘備份一次 TLog 將減少 TLog 文件的增長。重新創建 TLog 文件以減少/調整 VLF 大小也有幫助。請閱讀SQL Server 2014 (Sqlskills.com) 中對 VLF 創建算法的重要更改,了解如何完成此操作。
如果索引重建過程需要一個小時,那麼每 10 分鐘備份一次 TLog 可能無濟於事。對於 AG,您還必須考慮在輔助節點上進行強化,以便日誌可以在主節點上清除:
當您重建索引時,最終會有大量更改必須流向 AG 輔助節點。在輔助副本上強化所有這些更改(事務)之前,SQL 無法清除主副本上的事務日誌(安全功能,因此您不會失去事務)。
無論您在哪個副本上執行日誌備份都沒有關係,在一切都得到強化之前,您將無法清除這些日誌。這會在您的 TLogs 中創建大量的內容。這是執行 AG 和進行索引維護的副作用。
您需要更多磁碟空間。
社區維基回答如果可以,請編輯以改進。