GeminiDB PITR,讓遊戲回檔“進退自如”!

本文分享自華爲雲社區《GeminiDB PITR,讓遊戲回檔“進退自如”!》,作者:GaussDB 數據庫。

在實際業務場景中,客戶數據庫難免會出現數據損毀、數據丟失、數據誤刪除等故障場景。爲保障業務的正常運行,通常需要將數據庫恢復到故障發生前的某一個正常時刻。傳統數據庫採取週期性備份策略,即在系統故障時對數據進行恢復。因其數據恢復耗時較長,可恢復時間顆粒度較大,導致客戶業務受損嚴重。

什麼是PITR呢?

PITR(Point-in-Time Recovery),是指數據庫的“時間點恢復”功能。它是一種數據庫恢復技術,通常用於恢復誤刪除的數據或者誤操作導致損壞的數據,將其恢復到一個指定時間點的數據狀態。

以遊戲場景爲例,在遊戲運行期間,有玩家利用遊戲漏洞非法複製裝備、貨幣,使遊戲公平性遭到破壞。傳統數據庫備份頻率一般是一天全備一次,備份間隔即一整天,不僅恢復時間長、時間粒度大,甚至無法恢復到想要時間點等。而GeminiDB Redis接口新增的PITR特性能夠讓遊戲數據快速回檔,可根據客戶自定的備份粒度,最低支持5分鐘粒度,自行選擇需要恢復的時間點,實現數據的快速恢復。

1.png

PITR功能優勢

1. 備份任務無感,業務更穩健

GeminiDB Redis接口的PITR功能不涉及數據的拷貝,備份任務業務無感知,不影響數據訪問,讓客戶業務更加穩健。

GeminiDB Redis接口快照原理是通過記錄文件系統的狀態來實現的,而不是通過複製文件本身來實現的,是瞬時生成的;快照存儲當前時刻的底層數據的元數據信息,比如數據塊信息、尋址信息等,形成快照。因此,當打高速數據快照時,業務可以繼續運行,而不會受到任何影響。

在實際測試中,基於客戶業務6w的併發數據量對數據庫進行訪問,開啓GeminiDB Redis接口PITR功能,以最小粒度5分鐘執行一次快照。

下面是4個時間點每隔5分鐘執行一次快照結果(以下爲UTC時間,監控時間+8):

2.png

觀察可知,QPS,CPU,內存,P99時延均無波動,對客戶業務無影響。

3.png

2. 支持分鐘級快速恢復,恢復時長與數據大小無關

PITR數據快照文件可以在本地保存,不用上傳到冷存儲介質,因此,不涉及數據的拷貝搬遷,還可支持隨時數據恢復。

PITR恢復,數據恢復時長與數據大小無關,能快速恢復數百GB數據,通常可在5分鐘以內恢復數據,保證客戶業務可靠性。除此以外,PITR還可多次前後恢復,恢復到指定時間點後,既可向前,也可向後,讓客戶使用更省心。

我們分別測試了8U3節點實例,數據100GB和200GB的回檔速度。

4.png

3. 比開源Redis數據備份性能更優

開源Redis使用多進程寫時複製機制來實現快照的持久化。在持久化過程中,調用fork()產生一個子進程,fork()會阻塞Redis長達數百毫秒,對業務產生抖動;fork()的寫時複製技術(COW)會造成內存過度使用。如果fork()期間產生大量的寫操作,會導致內存嚴重浪費甚至OOM,通常內存利用率不足50%。而GeminiDB Redis接口的PITR特性不涉及數據的拷貝搬遷,因此,對業務基本無影響,且具有快照速度快,數據穩定,安全等特點。

PITR功能使用方法

1. 如何開啓GeminiDB Redis接口 PITR功能?

在控制檯,實例詳情頁->備份恢復->設置恢復到指定時間點策略,即可打開。備份時間間隔最低支持5分鐘,最高支持120分鐘,保留天數最大支持7天。

5.png

2. 如何恢復到執行的時間點?

實例詳情頁->備份恢復->恢復到指定時間點,便可本實例快速恢復到指定時間點。

6.jpg

總結

GeminiDB PITR執行數據快照業務無感,通常可在5分鐘以內恢復到指定時間點,尤其是在業務異常場景可快速回退,降低損失,有效解決傳統備份方案時間長、恢復粒度大等痛點問題。因此,GeminiDB在遊戲、金融等行業有着廣泛應用。

未來,GeminiDB Redis接口會進一步支持並完善數據恢復至某個秒級的時間點功能。也將持續致力於開發更多好用的企業級特性,幫助客戶輕鬆運維,高效開發。我們期待與全球的企業和開發者合作,共同探索數據的未來,推動技術和業務的發展。

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章