GeminiDB Cassandra介面在綜合備份成本、恢復時效和粒度得到充分驗證的情況下,推出新特性PITR(Point-In-Time-Recover)支持任意時間點恢復。 ...
本文分享自華為雲社區《GeminiDB Cassandra介面新特性PITR發佈:支持任意時間點恢復》,作者: GaussDB 資料庫。
技術背景
當業務發生數據損毀、數據丟失、數據誤刪除等一系列故障場景時,往往需要資料庫恢復到故障發生前的某一個時刻,且恢復的顆粒度越小越好。而傳統資料庫採取周期性備份的方式進行數據恢復時,只能恢復到備份的時間點。由於備份點有限,無法進行更細粒度的時間點恢復,非常影響用戶體驗。
華為雲資料庫GeminiDB是一款基於華為自主研發的計算存儲分離架構,相容Cassandra生態的雲原生NoSQL資料庫。GeminiDB Cassandra介面在綜合備份成本、恢復時效和粒度得到充分驗證的情況下,推出新特性PITR(Point-In-Time-Recover)支持任意時間點恢復,可以自由選擇需要恢復的時間點,從而保障用戶數據一致性可靠性與安全性!
實現原理
整體備份周期
一個完整的備份周期 = 1次全量數據備份 + 定期運行的增量日誌備份 + 穿插運行的差異備份(根據業務讀寫模型進行調整頻率)。
全量備份
PITR支持任意時間點恢復性能的實現,一部分依賴一次全量的數據備份。
全量數據備份為後續增量日誌備份提供數據基礎,GeminiDB Cassandra介面在進行備份時,會對數據進行秒級快照並充分利用集群中各節點來進行數據切分、上傳,因此做到了業務無感知,且不影響實例運行的效果。
增量日誌備份
PITR支持任意時間點恢復性能的實現,另一部分離不開增量日誌備份。
增量日誌備份是一種基於日誌文件WAL(Write-ahead log)的備份方法,相比較傳統的增量數據備份具有備份任務量輕、上傳速率快、節省空間等特點。GeminiDB Cassandra介面會定期備份已歸檔WAL,上傳完畢後及時清理回收。
差異備份
PITR支持任意時間點恢復性能的實現,與差異備份也有一定的關係。
PITR實例恢復時會進行日誌回放,當全量備份周期設置較長,業務寫入量較大時,會導致回放時日誌過多,引起回放時間的增加,而差異備份可以緩解避免這個問題。差異備份本質上是一種數據備份,其基於上一次全量備份或差異備份進行數據差異對比上傳,有效減少日誌回放量,提升恢復速率。
恢復流程
- 下載全量備份數據到新實例
- 下載增量WAL文件至新實例
- 以恢復模式打開資料庫進行WAL日誌回放
- 恢復到新實例流程結束
總結
華為雲資料庫GeminiDB Cassandra介面新特性PITR實現了任意時間點恢復,填補了傳統NoSQL引擎只能做指定時間點恢復的短板,將恢復精度精確到任意時間點,極大地提升了用戶體驗,為數據的安全性和可靠性提供更好的保障。
附錄
- 本文作者華為雲GeminiDB團隊
- 杭州西安深圳簡歷投遞:[email protected]
- 華為雲GeminiDB官方產品頁:https://www.huaweicloud.com/product/geminidb.html