动态

详情 返回 返回

SQLServer Always On環境的數據庫備份 - 动态 详情

SQL Server的Always on環境的備份規則設置比較混亂,加上一個copy_only備份,更是亂上加亂,copy_only備份實在極少的特殊情況下使用的備份,企業級日常備份,不可能用copy_only備份的,因此這裏不討論copy_only備份。

Backup preference有多重設置,企業級生產環境保持默認就可以,這裏以默認設置為例
1、不管怎麼設置,正常的數據庫備份(full backup、diff backup)只能在主節點進行
2、如果AG正常,Transaction Log備份可以在任何一個節點上執行
3、如果主節點和輔助節點之間的同步斷了,輔助節點無法執行日誌備份
4、任何節點都支持COPY_ONLY備份,COPY_ONLY備份不能與diff備份或者trans log備份一起恢復數據庫,COPY_ONLY備份不能作為日常備份的一個考慮選項。

直觀地列出來備份可以允許的規則如下

以這個備份為例:

以時間為步驟
1,主節點上執行完整備份,full backup 1
2,主節點上執行差異備份,diff backup 1
3,從節點1上執行事務日誌備份備份,生成transaction log backup 1
4,從節點2上執行事務日誌備份備份,生成transaction log backup 2
5,主節點上執行事務日誌備份備份,生成transaction log backup 3

可以使用full backup 1 + diff backup 1 + transaction log backup 1 + transaction log backup 2 + transaction log backup 3來實現基於時間點的恢復。

 

參考下圖,以兩個Always on節點為例,分別是A和B節點,在完整備份的基礎上,分別在A和B節點上執行備份,可以發現transaction log的LSN在始終是連續的。也就是first LSN始終開始於上一次的last LSN,而不管上一次的transaction log備份發生在哪個節點。
實際上在transaction log再不同節點備份的時候,transaction的LSN是連續的,
這意味着:
1,在任何一個節點上執行transaction log備份,都可以作為恢復數據庫的一部分使用。
2,在任何一個節點上執行transaction log備份,都“截斷”了所有節點的數據庫對應的事務日誌,事務日誌文件可以重用。

 

 

ServerA上的transaction log日誌使用率

ServerB上的transaction log日誌使用率

 

在任何一個節點上做Transaction log 備份,日誌文件的使用情況了都會同步到Always on中的其他節點。因此建議在企業級備份時,在主節點上做full和diff備份,在其中一個固定節點上做transaction log備份。

 

Add a new 评论

Some HTML is okay.