穿越數據的變遷--如何使用阿里雲Redis數據閃回進行按時間點的數據恢復

在當下數據爲王的時代,客戶的業務數據是一個企業的核心資產,各個行業客戶都在不斷追求在其使用的數據庫上有更爲強大、細粒度的數據備份恢復功能,以應對各樣的數據丟失、業務邏輯錯誤帶來的商業風險。例如,在遊戲行業裏,有大量客戶存在“遊戲回檔”的實際需求,以應對運營或故障風險。再例如,2020年某上市公司出現刪庫跑路事件,公司市值遭到嚴重打擊。對於上述情況,傳統的定時或手動備份的數據由於存在備份時間點與黑天鵝事件之間的時間差,因此均不是理想完備的解決方案。對於防範上述數據風險,最理想的功能是,數據能夠以秒級顆粒度恢復至黑天鵝事件發生的瞬時時間點上。

在傳統關係型數據庫中(如Oracle)提供了數據閃回功能,幫助客戶完成數據的按時間恢復。而在主流的高速緩存產品Redis、Memcached上卻鮮有類似的功能,箇中原因主要是考慮到作爲緩存產品,其中的數據可以丟失,而通過背後配備的持久化、事務性的關係型數據庫可以對緩存進行重新加載。但是,隨着大量客戶對於低延遲的業務應用性能要求不斷的提高,對於一些對延遲要求極高的場景下,例如遊戲行業,越來越多的客戶選擇化簡架構,將Redis直接作爲內存數據庫來使用,這便對Redis的數據安全可恢復提出了更大的挑戰。阿里雲Redis作爲行業內的領軍產品,擁有國內強大的Redis產品系列,在託管社區Redis版本的同時大力發展自主研發、兼容Redis協議增強型鍵值存儲產品Tair(阿里雲Redis企業版)。其中“更安全”是阿里雲Redis向廣大客戶提供服務的重要部分,針對上述客戶訴求,阿里雲在Tair中的性能增強版上特別推出了數據閃回功能,幫助客戶實現在其指定時間點上恢復指定Redis實例數據的能力,提前爲客戶可能出現的風險準備好一劑“後悔藥”。功能示意如下圖所示:

使用這個能夠幫助用戶穿越數據變遷的黑科技只需簡單幾步。

  • 開通阿里雲Redis企業版性能增強版實例

  • 開啓數據閃回功能

  • 正常讀寫Redis數據庫

  • 一旦發生即時數據恢復要求,選擇對應實例和欲恢復的時間點,產生新實例

  • 切換應用連接的實例地址

下面以一個簡單的示例演示:

首先,我們先對一個阿里雲Tair實例寫入一些數據,寫入腳本如下:


我們運行上述腳本以大約一秒的速率寫入帶時間戳的KV到一個叫做userprofile的hash結構中,一共寫入120個Key,代表業務寫入。

如命令執行所示,我們是在08月03日20:27:09 –08月03日 20:29:09 寫入了120條數據。

隨後在業務運行中,發現08月03日20:28:10之後,上述業務運行中發生數據風險,我們需要將新創建一個數據庫,將原數據庫在此時間點之前的數據恢復到這個新的數據庫實例中。

我們到阿里雲Redis控制檯的備份恢復功能,選擇數據閃回功能,點擊“馬上閃回”按鈕,選擇克隆源類型是“過去時間點”,然後選擇要恢復的時間點:

新建的實例就是我們要將指定時間點數據恢復到的目標實例,這裏值得一提的數據閃回只要求目標實例容量大於等於源實例,而架構則可以與源實例不同,也就是說用戶可以自由選擇目標實例爲標準主從、集羣或者讀寫分離架構的任何一個。

點擊支付後等待片刻後實例創建完畢並完成數據恢復。

我們連接新創建的實例,看看究竟數據恢復的情況如何?


可以看到,我們已經成功的恢復數據到了08月03日 20:28:10的數據,在此時間點之後的數據修改均沒有生效,用戶完美地規避了指定的時間點之後發生的數據風險。

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