SQL Server事務日志備份的一些疑問淺析


這里簡單總結一下關於SQL Server事務日志備份的一些疑問,如有其它更多疑問,歡迎你們留言討論。

 

 

事務日志備份頻繁有性能影響嗎?

 

關於事務日志備份,如果設置得非常頻繁有什么性能影響嗎? 這個是不少人的疑惑,頻繁的事務日志備份是否影響性能呢?其實這是一個謬論。關於這些問題,我們先來做個假設,假設兩小時內產生了30G大小的事務日志,那么對於下面幾種事務日志備份策略:

 

 

    1: 2小時做一次事務日志備份。

    2: 1小時做一次事務日志備份。

    3:30分鍾做一次事務日志備份。

    4: 15分鍾做一次事務日志備份。

    5: 5分鍾做一次事務日志備份。

 

總體來說,如果2小時內,產生了30G大小的事務日志,那么不管哪種備份策略,事務日志備份的IO總量(或者事務日志備份文件大小)是一樣的。並不會因為日志備份頻率有所區別。但是如果2小時備份一次事務日志,那么一次將要備份30G大小的日志。這個對IO的影響將持續較長一段時間,如果是15分鍾備份一次事務日志(這里為了說明,假設事務日志是均衡、平均產生的),那么一次事務日志備份只需要備份3.75GB大小的事務日志。如果從資源消耗的角度來說,頻繁的事務日志備份反而能分散IO到不同時間段,避免較短時間產生大量的IO操作。這樣對系統IO性能反而好處較多。

 

而且頻繁的事務日志備份不僅可以減少一次備份事務日志的大小,從時間范圍上分散IO,而且頻繁的事務日志備份,還有增加日志截斷頻率的優點,讓事務日志文件不會變得非常大。

 

那么說了這么多,頻繁的事務日志備份都是好處,那么是不是我設置的越頻繁越好呢? 要不要設置為1分鍾一次事務日志備份呢?這個也不盡然,我們知道很多事務日志備份作業是串行備份多個數據庫。如果一分鍾做一次事務日志備份,那么可能出現作業在一分鍾內運行不完的情況。另外,可能會產生大量的事務備份文件,管理和還原的時候也會有所干擾。正確的做法權衡多方面考慮,設置合適的備份頻率。

 

如何設置日志備份的頻率呢?官方文檔有這樣的描述:

 

·         事務日志備份頻率應足夠支持業務需求,尤其是對損壞的日志存儲可能導致的數據丟失的容忍程度。

 

·         適當的日志備份頻率取決於您對數據丟失風險的容忍程度與所能存儲、管理和潛在還原的日志備份數量之間的平衡。 實現恢復策略時,請考慮必需的RTO RPO,特別是日志備份頻率。

 

·         15 30 分鍾進行一次日志備份可能就已足夠。 但是如果您的業務要求將工作丟失的風險最小化,請考慮進行更頻繁的日志備份。 

   

 

 

完整備份包含事務日志備份嗎?

 

數據庫完整備份將備份整個數據庫。 還包括部分的事務日志,以便在還原完整數據庫備份后可以恢復完整數據庫。其實差異備份也是如此。完整或差異備份需要日志來將數據庫還原到當完整或差異備份結束時的事務一致性狀態。所以,完整備份或差異備份包含部分事務日志備份。准確的說是從完整備份開始到結束這段時間的事務日志備份。

 

 

完整備份會截斷事務日志嗎?

 

首先,我們先搞清楚一個概念,截斷日志(log truncating和日志清理log clearing其實是同一件事情,它們表示事務日志的一部分被標記為不再需要,可以覆蓋重復使用了(有點類似Oracle下的redo log歸檔后,可以被重新覆蓋了)。在完整或大容量事務日志恢復模式下,只有備份日志才會清除日志。我們知道完整備份會包含事務日志備份,但是它確實不會截斷日志(清除日志),跟多詳細細節參考“Misconceptions around the log and log backups: how to convince yourself”

 

 

簡單恢復模式下能做事務日志備份嗎?

 

不行。簡單的恢復模式下僅允許完整備份和差異數據庫備份,並且沒有進行事務日志備份的機會。 在簡單恢復模型中創建檢查點時,將從事務日志中刪除所有已提交的事務。

 

 

 

參考資料:

https://www.sqlskills.com/blogs/paul/misconceptions-around-the-log-and-log-backups-how-to-convince-yourself/

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/transaction-log-backups-sql-server?view=sql-server-ver15


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM