成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

真槍實彈!Redis 「冷備」讓您睡個安穩覺zZ

存儲 存儲軟件 Redis
Redis 的 RDB 持久化方案,相信大家都有所了解,但是對于企業來說,如果只是持久化了一個 RDB 文件,不足以應付生產級別的事故。

[[416657]]

大家好,我是悟空呀。

Redis 的 RDB 持久化方案,相信大家都有所了解,但是對于企業來說,如果只是持久化了一個 RDB 文件,不足以應付生產級別的事故。

通常的方案就是對 RDB 進行多個備份,今天帶大家來真槍實彈操作下 RDB 的冷備,以及通過 RDB 進行數據恢復。學會了這招,今晚可以好好睡覺了嗎?

企業級冷備方案

Redis RDB 持久化是非常適合做企業級的冷備方案的,這里的冷備可以理解為將已生成的文件拷貝到其他機器或者云服務器上。

RDB 適合做冷備的原因如下:

RDB 文件生成后,改變的頻率低,除非頻繁觸發檢查點導致重新生成。

RDB 是 Redis 內存快照,比 AOF 日志恢復速度快。

RDB 的生成策略可以自行配置,而且可以配置多項,可以根據系統的使用場景和實際情況進行設置。

備份方案

1、用 Linux 自帶的 crontab 命令執行定時任務,調用數據備份腳本。

2、每小時備份一份一次當前最新的 RDB 快照文件到指定目錄,只保留最近 48 小時的備份。

3、每天備份一份當前最新的 RDB 快照文件到指定目錄,只保留最近一個月的 備份。

4、每天晚上將備份文件都發送遠程的云服務器上。

流程圖如下所示:

每小時備份

首先需要編寫一個腳本,專門用來做數據備份,創建腳本的命令如下:

  1. mkdir /usr/local/redis 
  2. mkdir /usr/local/redis/copy 
  3. vi /usr/local/redis/copy/redis_rdb_copy_hourly.sh 
  4. mkdir /usr/local/redis/snapshotting 
  5. chmod 777 /usr/local/redis 

然后編寫這個腳本文件:

  1. #!/bin/sh  
  2.  
  3. cur_date=`date +%Y%m%d%H` 
  4. rm -rf /usr/local/redis/snapshotting/$cur_date 
  5. mkdir /usr/local/redis/snapshotting/$cur_date 
  6. cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date 
  7.  
  8. del_date=`date -d -48hour +%Y%m%d` 
  9. rm -rf /usr/local/redis/snapshotting/$del_date 

腳本解釋:

  • cur_data 代表當前時間,精確到小時,比如 2021080616。
  • 刪除當前小時的快照文件。
  • 創建當前小時的備份文件,文件為空的。
  • 拷貝當前的快照文件到上一步創建的空的備份文件中。
  • del_date 代表 48 小時以前的時間,精確到小時,比如 2021080416。
  • 刪除 48 小時以前的備份文件。

設置定時任務,每個小時的 0 分跑一次腳本:

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

因為要等到下一個小時的 0 點,所以就手動運行腳本來測試:

  1. cd /usr/local/redis/copy 
  2. ./redis_rdb_copy_hourly.sh  

會在 snapshotting 文件夾創建一個目錄:2021080809,表示這是 2021-08-08 09 時的備份文件夾(注意這個時間是 UTC 時間)。這個目錄里面還會有一個 dump.rdb 文件。如下圖所示:

每天備份

和每小時備份類似,先創建一個每天備份一次的腳本:

  1. vi /usr/local/redis/copy/redis_rdb_copy_daily.sh 
  2. chomd 777 * 

編寫腳本:

  1. #!/bin/sh  
  2.  
  3. cur_date=`date +%Y%m%d` 
  4. rm -rf /usr/local/redis/snapshotting/$cur_date 
  5. mkdir /usr/local/redis/snapshotting/$cur_date 
  6. cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date 
  7.  
  8. del_date=`date -d -1month +%Y%m%d` 
  9. rm -rf /usr/local/redis/snapshotting/$del_date 

創建每天備份一次的定時任務:

  1. crontab -e 
  2.  
  3. 0 0 * * * sh /usr/local/redis/copy/redis_rdb_copy_daily.sh 

手動執行備份腳本:

  1. cd /usr/local/redis/copy 
  2. ./redis_rdb_copy_daily.sh  

會在 snapshotting 文件夾創建一個目錄:20210808,表示這是今天 2021-08-08 的備份文件夾(注意這個時間是 UTC 時間)。這個目錄里面還會有一個 dump.rdb 文件。如下圖所示:

另外這些備份建議都上傳到云服務器上,多個地方備份增加一份安全感。(云服務同步的后續再介紹。)

今晚就可以睡個安穩覺了~

從備份文件中恢復

假設一種場景:幾個小時前上線的程序把 Redis 的數據都污染了,數據錯了,該怎么辦?

可以選擇某個更早的時間點的備份文件進行恢復。

恢復的流程

  • 停止 Redis,暫時關閉 AOF 的持久化配置。
  • 刪除 AOF 日志文件和 RDB 快照文件。
  • 拷貝 RDB 快照文件到 Redis 的 RDB 文件加載目錄。
  • 重啟 Redis,確認數據恢復成功。
  • 熱修改 Redis 的 AOF 持久化配置,Redis 會將內存中的數據寫入到 AOF 文件中。
  • 再次停止 Redis,手動修改配置文件,打開 AOF 持久化,防止熱修改不生效。
  • 再次重啟 Redis。

 本文轉載自微信公眾號「悟空聊架構」,可以通過以下二維碼關注。轉載本文請聯系悟空聊架構公眾號。

 

責任編輯:武曉燕 來源: 悟空聊架構
相關推薦

2010-09-27 10:24:30

DHCP服務器排錯

2011-08-11 15:46:32

2020-06-05 08:53:31

接口性能實踐

2020-02-05 16:50:26

AI人工智能

2016-04-26 14:10:09

2010-09-15 17:14:44

APC

2014-11-05 11:08:21

黑客程序員

2014-01-03 11:05:16

2019-08-22 17:15:02

物聯網大數據運輸

2009-11-19 17:31:24

2011-10-31 14:57:37

2021-01-07 10:12:38

物聯網數據物聯網IOT

2023-07-28 07:14:13

2009-10-22 15:59:19

綜合布線系統測試

2020-04-14 15:10:38

Linux終端命令

2017-03-02 07:36:40

科技新聞早報

2011-10-25 11:40:54

打印機常見問題

2009-08-27 11:43:21

VMware必備資源

2019-03-12 09:51:13

開發工具 操作

2009-11-17 14:23:30

路由器結構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕久久精品 | 亚洲小视频在线观看 | 一区二区免费看 | 国产欧美日韩视频 | 午夜影院| 二区在线视频 | 黄色欧美| 亚洲精品乱码久久久久久按摩 | 精品一区二区久久 | 亚洲精品日韩在线 | 国产精品九九视频 | 午夜寂寞影院在线观看 | 亚洲精品第一页 | 日韩精品在线播放 | 国产成人a亚洲精品 | 91精品国产91久久久久久 | 国产免费播放视频 | 日韩成人在线免费观看 | 97色免费视频 | 天堂免费看片 | 日韩精品一区二区三区四区 | 美国一级片在线观看 | 狠狠爱综合网 | 日韩小视频 | 激情一区二区三区 | 精品国产欧美一区二区 | 国产无套一区二区三区久久 | 蜜桃视频成人 | 国产视频久 | 97视频网站 | 亚洲一二三区在线观看 | 久久久久九九九九 | 在线看片国产精品 | 亚洲精品乱码久久久久久按摩观 | 天天成人综合网 | 国产资源在线播放 | 91成人午夜性a一级毛片 | av中文字幕网 | 国产中文字幕在线观看 | 日韩国产在线观看 | 中国一级特黄真人毛片免费观看 |