Redis数据备份和恢复

Redis数据备份和恢复

  • 一、每小时备份,删除48小时前的数据
  • 二、每天备份,删除1个月前的数据
  • 三、数据恢复

 

数据备份方案,RDB非常适合做冷备,每次生成之后,就不会再有修改了。
(1)写crontab定时调度脚本去做数据备份。
(2)每小时都copy一份rdb的备份,到一个目录中去,仅仅保留最近48小时的备份。
(3)每天都保留一份当日的rdb的备份,到一个目录中去,仅仅保留最近1个月的备份。
(4)每次copy备份的时候,都把太旧的备份给删了。
(5)每天晚上将当前服务器上所有的数据备份,发送一份到远程的云服务上去。

一、每小时备份,删除48小时前的数据

redis_rdb_hourly.sh

#!/bin/sh 

cur_date=`date +%Y%m%d%H`
rm -rf /usr/local/redis/backup/$cur_date
mkdir /usr/local/redis/backup/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/backup/$cur_date

del_date=`date -d -48hour +%Y%m%d%H`
rm -rf /usr/local/redis/backup/$del_date
crontab -e
0 * * * * sh /usr/local/redis/backup/redis_rdb_hourly.sh

二、每天备份,删除1个月前的数据

redis_rdb_daily.sh

#!/bin/sh 

cur_date=`date +%Y%m%d`
rm -rf /usr/local/redis/backup/$cur_date
mkdir /usr/local/redis/backup/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/backup/$cur_date

del_date=`date -d -1month +%Y%m%d`
rm -rf /usr/local/redis/backup/$del_date

 

crontab -e
0 0 * * * sh /usr/local/redis/backup/redis_rdb_daily.sh

三、数据恢复

(1)如果是redis进程挂掉,重启redis进程即可,直接基于AOF日志文件恢复数据,注意默认是开启RDB关闭AOF,所以需要开启,两个同时开启默认用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里面去,就可以恢复到某一个小时的数据。

特别注意

数据恢复

所以我们要先停止redis,删除appendonly.aof,在配置中关闭aof,然后拷贝一份rdb过来,再重启redis,这个时候数据就能恢复了,然后直接在命令行热修改redis配置,打开aof,这个redis就会将内存中的数据对应的日志,写入aof文件中,此时aof和rdb两份数据文件的数据就同步了,然后再停止redis,在配置中开启aof,再重启redis。

config get appendonly
config set appendonly yes

关键点:热修改不会修改配置文件,所以最后必须手动修改,数据恢复优先使用的是appendonly.aof,只要开着aof,redis启动的时候就会使用它,如果不存在就会生成一个新的空的appendonly.aof文件,所以必须通过热修改配置来让aof和rdb数据同步。

posted on   剩余价值  阅读(70)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-07-09 Ueditor 防止html过滤标签的操作
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示