1. 程式人生 > >Redis企業級資料備份

Redis企業級資料備份

企業級的持久化的配置策略

在企業中,RDB的生成策略,用預設的也差不多
save 60 10000:如果你希望儘可能確保說,RDB最多丟1分鐘的資料,那麼儘量就是每隔1分鐘都生成一個快照,低峰期,資料量很少,也沒必要
10000->生成RDB,1000->RDB,這個根據你自己的應用和業務的資料量,你自己去決定
AOF一定要開啟,fsync,everysec
auto-aof-rewrite-percentage 100: 就是當前AOF大小膨脹到超過上次100%,上次的兩倍
auto-aof-rewrite-min-size 64mb: 根據你的資料量來定,16mb,32mb

企業級的資料備份方案(此處需要些crontab指令碼,不熟悉,沒寫)

RDB非常適合做冷備,每次生成之後,就不會再有修改了
資料備份方案:

(1)寫crontab定時排程指令碼去做資料備份
(2)每小時都copy一份rdb的備份,到一個目錄中去,僅僅保留最近48小時的備份
(3)每天都保留一份當日的rdb的備份,到一個目錄中去,僅僅保留最近1個月的備份
(4)每次copy備份的時候,都把太舊的備份給刪了
(5)每天晚上將當前伺服器上所有的資料備份,傳送一份到遠端的雲服務上去

資料恢復方案

(1)如果是redis程序掛掉,那麼重啟redis程序即可,直接基於AOF日誌檔案恢復資料
(2)如果是redis程序所在機器掛掉,那麼重啟機器後,嘗試重啟redis程序,嘗試直接基於AOF日誌檔案進行資料恢復,AOF沒有破損,也是可以直接基於AOF恢復的,AOF append-only,順序寫入,如果AOF檔案破損,那麼用redis-check-aof fix

(3)如果redis當前最新的AOF和RDB檔案出現了丟失/損壞,那麼可以嘗試基於該機器上當前的某個最新的RDB資料副本進行資料恢復,當前最新的AOF和RDB檔案都出現了丟失/損壞到無法恢復,找到RDB最新的一份備份,小時級的備份可以了,小時級的肯定是最新的,copy到redis裡面去,就可以恢復到某一個小時的資料

容災演練

1.停止redis,關閉aof,拷貝rdb備份,重啟redis,確認資料恢復,直接在命令列熱修改redis配置,(config set appendonly yes)開啟aof,這個redis就會將記憶體中的資料對應的日誌,寫入aof檔案中此時aof和rdb兩份資料檔案的資料就同步了
2.redis config set熱修改配置引數,可能配置檔案中的實際的引數沒有被持久化的修改,再次停止redis,手動修改配置檔案,開啟aof的命令,再次重啟redis