Redis:企業(yè)級數(shù)據(jù)備份方案

1. 持久化配置策略

(1)首先是RDB的生成策略芭毙,這點用Redis默認的配置即可,比如:save 60 10000讨永。但是如果我們希望盡可能確保說耽梅,RDB最多丟1分鐘的數(shù)據(jù),那么盡量就是每隔1分鐘都生成一個快照捍壤,比如設置成:save 60 1000。個人覺得默認的配置即可,當然我們也可以根據(jù)自己的應用和業(yè)務的數(shù)據(jù)量去決定如何調整這個參數(shù)闰挡。

(2)AOF持久化一定要開啟,fsync的策略為everysec也沒有多大問題礁哄〕ば铮可能我們僅僅需要做些調整的是下面兩個參數(shù):

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

2. 數(shù)據(jù)備份方案

RDB非常適合做冷備,每次生成之后桐绒,就不會再有修改了夺脾。企業(yè)中的數(shù)據(jù)備份方案通常是:

(1)寫crontab定時調度腳本去做數(shù)據(jù)備份之拨。

crontab -e
 
0 * * * * sh /usr/local/redis/copy/redis_rdb_copy_hourly.sh
0 0 * * * sh /usr/local/redis/copy/redis_rdb_copy_daily.sh

(2)每小時都copy一份rdb的備份,到一個目錄中去咧叭,僅僅保留最近48小時的備份蚀乔。

#### redis_rdb_copy_hourly.sh
 
#!/bin/sh 
cur_date=`date +%Y%m%d%k`
rm -rf /usr/local/redis/snapshotting/$cur_date
mkdir /usr/local/redis/snapshotting/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date
 
del_date=`date -d -48hour +%Y%m%d%k`
rm -rf /usr/local/redis/snapshotting/$del_date

(3)每天都保留一份當日的rdb的備份,到一個目錄中去菲茬,僅僅保留最近1個月的備份吉挣。

#### redis_rdb_copy_daily.sh
 
#!/bin/sh 
cur_date=`date +%Y%m%d`
rm -rf /usr/local/redis/snapshotting/$cur_date
mkdir /usr/local/redis/snapshotting/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date
 
del_date=`date -d -1month +%Y%m%d`
rm -rf /usr/local/redis/snapshotting/$del_date

(4)每天晚上將當前服務器上所有的數(shù)據(jù)備份,發(fā)送一份到遠程的云服務上去婉弹。

3. 數(shù)據(jù)恢復方案

以下分為5種場景(恢復時睬魂,需要注意的是:當同時開啟RDB和AOF時,會使用AOF恢復數(shù)據(jù)):

(1)如果是redis進程掛掉镀赌,那么重啟redis進程即可氯哮,直接基于AOF日志文件恢復數(shù)據(jù)。

(2)如果是redis進程所在機器掛掉佩脊,那么重啟機器后蛙粘,嘗試重啟redis進程,嘗試直接基于AOF日志文件進行數(shù)據(jù)恢復威彰。

AOF沒有破損出牧,也是可以直接基于AOF恢復的。

AOF append-only歇盼,順序寫入舔痕,如果AOF文件破損,那么用redis-check-aof fix進行修復豹缀。

(3)如果redis當前最新的AOF和RDB文件出現(xiàn)了丟失/損壞伯复,那么可以嘗試基于該機器上當前的某個最新的RDB數(shù)據(jù)副本進行數(shù)據(jù)恢復。

(4)如果當前機器上的所有RDB文件全部損壞邢笙,那么從遠程的云服務上拉取最新的RDB快照回來恢復數(shù)據(jù)啸如。

(5)如果是發(fā)現(xiàn)有重大的數(shù)據(jù)錯誤,比如某個小時上線的程序一下子將數(shù)據(jù)全部污染了氮惯,數(shù)據(jù)全錯了叮雳,那么可以選擇某個更早的時間點,對數(shù)據(jù)進行恢復妇汗。

比如在某個時間點發(fā)現(xiàn)代碼有bug帘不,導致代碼生成的所有的緩存數(shù)據(jù),寫入redis全部錯了杨箭。那么可以找到一份該時間點前的最近一分rdb的冷備寞焙,然后按照上面的步驟,去恢復數(shù)據(jù)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末捣郊,一起剝皮案震驚了整個濱河市辽狈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌模她,老刑警劉巖稻艰,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侈净,居然都是意外死亡尊勿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門畜侦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來元扔,“玉大人,你說我怎么就攤上這事旋膳∨煊铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵验懊,是天一觀的道長擅羞。 經(jīng)常有香客問我,道長义图,這世上最難降的妖魔是什么减俏? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮碱工,結果婚禮上娃承,老公的妹妹穿的比我還像新娘。我一直安慰自己怕篷,他們只是感情好历筝,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著廊谓,像睡著了一般梳猪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒸痹,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天春弥,我揣著相機與錄音,去河邊找鬼电抚。 笑死,一個胖子當著我的面吹牛竖共,可吹牛的內容都是我干的蝙叛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼公给,長吁一口氣:“原來是場噩夢啊……” “哼借帘!你這毒婦竟也來了蜘渣?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肺然,失蹤者是張志新(化名)和其女友劉穎蔫缸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體际起,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡拾碌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了街望。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片校翔。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灾前,靈堂內的尸體忽然破棺而出防症,到底是詐尸還是另有隱情,我是刑警寧澤哎甲,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布蔫敲,位于F島的核電站,受9級特大地震影響炭玫,放射性物質發(fā)生泄漏奈嘿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一础嫡、第九天 我趴在偏房一處隱蔽的房頂上張望指么。 院中可真熱鬧,春花似錦榴鼎、人聲如沸伯诬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盗似。三九已至,卻和暖如春平项,著一層夾襖步出監(jiān)牢的瞬間赫舒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工闽瓢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留接癌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓扣讼,卻偏偏與公主長得像缺猛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355