RDB data backup solution

data backup solution

(1) Write crontab schedule script to do data backup

(2) Copy a backup of rdb every hour, go to a directory, and keep only the backup of the last 48 hours

(3) Keep a backup of the rdb of the day every day, go to a directory, and only keep the backup of the last month

(4) Every time you copy a backup, delete the backup of the earliest day | January

(5) Back up all the data on the current server every night and send a copy to the remote cloud service

 

Environment Description: 


 

 

scene 1:

Copy backups every hour and delete data older than 48 hours

crontab -e

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

Redis_rdb_copy_hourly.sh file content:

#!/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

 

 Scenario 2:

Copy a backup every day and delete the data of the previous month

crontab -e

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

Redis_rdb_copy_daily.sh file content: 

#!/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

 

Note: You can also use scp to copy the files that have been backed up to this machine to other servers to prevent the failure of the local hard disk

 

Scenario 3:

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

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

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

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

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326169741&siteId=291194637