[SQL SERVER][Memo]備份策略(補充說明)
很久以前我有發表過備份策略文章,從以前到現在的資料庫備份策略我一直都沒多大改變,
而建立備份過程中免不了要和使用者解釋為什麼要這樣做,
為了節省時間這裡自己寫個說明文章,方便以後傳送該文章連結即可...XD。
一般來說,備份程序同時使用差異備份和交易記錄備份可以縮短資料庫還原到建立資料庫備份後的任何時間點,
且同時建立差異備份和交易記錄備份又可以提高備份強壯性(預防某個備份檔案毀損),
因為只需套用最後(新)一個差異備份和之後所建立的交易記錄備份,
即可把資料庫復原至失敗點,如果沒使用差異備份的話,
那就必須套用整個資料庫備份之後的所有交易記錄備份(這相當煩人...),
又或者沒執行交易記錄備份(滿多人都沒備份的...@@),
但當老闆希望資料庫回到失敗前30分鍾時,
你卻和老闆說只能回到前天晚上23:00(最後的差異備份時間點),
因為沒有執行備份交易紀錄(如果你老闆事先不知道的話,那你可能要準備自動請辭了...@@),
在現實世界中,我比較常遇到沒有備份交易紀錄,
或備分交易紀錄時間週期太長導致交易紀錄檔爆大的例子,
設定交易記錄檔應該符合(參考我這篇文章)
1.一開始設定最適當的大小(避免等待擴充較大或過多交易記錄檔)。
2.檔案增量不可過大也不可過小,依環境調整適當大小
(過多不必要虛擬記錄檔將會降低執行效能,因為SQL Server要處理這些增量檔需要花更久的時間,且也將拉長啟動時間)。
還有 recovery interval 伺服器組態設定問題,recovery interval 會讓 SQL Server 知道復原操作不能超過多少時間,
只要 SQL Server 認為該操作復原時間可能會超過 recovery interval 所設定大小時,
這時就會執行 CheckPoint 將存放在記憶體中修改後的資料寫入硬碟,
可想而知 recovery interval 選項會影響每個資料庫執行 CheckPoint 頻率,
這意味者 recovery interval 值設定太大將影響毀損復原效能(越大復原時間越長),
但卻可以改善資料庫 I/O 效能(因為不需要頻繁寫入硬碟),
但我個人認為除非頻繁的CheckPoint(預設值: 0 小於1分鐘)已經嚴重影響了資料庫效能,
或復原長時間交易大多大於1分鐘的話,
那倒是可以嘗試少量增加該值來取得一個較好的平衡,
否則建議都由SQL Server 自行管理會比較妥當。
參考