RDB数据备份方案

本文介绍了如何通过crontab设置定时任务,实现每小时和每日的RDB数据备份,保留一定期限的备份文件,并详细阐述了数据恢复的步骤,包括在Redis停止服务时进行冷备恢复的操作流程。
摘要由CSDN通过智能技术生成

数据备份方案

(1)写crontab定时调度脚本去做数据备份

(2)每小时都copy一份rdb的备份,到一个目录中去,仅仅保留最近48小时的备份

(3)每天都保留一份当日的rdb的备份,到一个目录中去,仅仅保留最近1个月的备份

(4)每次copy备份的时候,把最早一天|一月的备份删了

(5)每天晚上将当前服务器上所有的数据备份,发送一份到远程的云服务上去

 

环境说明: 


 

 

场景1:

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

crontab -e

0 * * * *  /usr/local/redis/sh/redis_rdb_copy_hourly.sh

redis_rdb_copy_hourly.sh文件内容:

#!/bin/sh
cur_date=`date +%0Y%0m%0d%0k`
rm -rf /usr/local/redis/bak/$cur_date
mkdir /usr/local/redis/bak/$cur_date
cp /usr/local/redis/data/dump.rdb /usr/local/redis/bak/$cur_date

del_date=`date -d -48hour +%0Y%0m%0d%0k`
rm -rf /usr/local/redis/bak/$del_date

 

 场景2:

每天copy一次备份,删除上月的数据

crontab -e

0 0 * * *  /usr/local/redis/sh/redis_rdb_copy_daily.sh

redis_rdb_copy_daily.sh文件内容: 

#!/bin/sh
cur_date=`date +%0Y%0m%0d`
rm -rf /usr/local/redis/bak/$cur_date
mkdir /usr/local/redis/bak/$cur_date
cp -r /usr/local/redis/data/dump.rdb /usr/local/redis/bak/$cur_date
 
del_date=`date -d -1month +%0Y%0m%0d`
rm -rf /usr/local/redis/bak/$del_date

 

注意事项:此处还可以使用scp将已备份到本机的文件拷贝到其他服务器,防止本机硬盘故障

 

场景3:

冷备数据恢复,在reids已停止对外服务的情况下,并且RDB和AOF都开启:

1、配置文件关闭aof,即:appendonly no

2、删除aof文件,拷贝(覆盖)备份的rdb文件,启用redis,此时数据已恢复

3、动态开启aof,即:config set appendonly yes,待自动生成aof文件(如果不自动生成,可调用bgrewriteaof命令触发),完成数据的重写

4、修改配置文件开启aof,启动redis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值