Redis 的 RDB 持久化方案,相信大家都有所了解,但是对于企业来说,如果只是持久化了一个 RDB 文件,不足以应付生产级别的事故。通常的方案就是对 RDB 进行多个备份,今天带大家来真枪实弹操作下 RDB 的冷备,以及通过 RDB 进行数据恢复。

企业级冷备方案

Redis RDB 持久化是非常适合做企业级的冷备方案的,这里的冷备可以理解为将已生成的文件拷贝到其他机器或者云服务器上。

RDB 适合做冷备的原因如下:

  • RDB 文件生成后,改变的频率低,除非频繁触发检查点导致重新生成。
  • RDB 是 Redis 内存快照,比 AOF 日志恢复速度快。
  • RDB 的生成策略可以自行配置,而且可以配置多项,可以根据系统的使用场景和实际情况进行设置。

备份方案

1.用 Linux 自带的 crontab 命令执行定时任务,调用数据备份脚本。

2.每小时备份一份一次当前最新的 RDB 快照文件到指定目录,只保留最近 48 小时的备份。

3.每天备份一份当前最新的 RDB 快照文件到指定目录,只保留最近一个月的 备份。

4.每天晚上将备份文件都发送远程的云服务器上。

每小时备份

首先需要编写一个脚本,专门用来做数据备份,创建脚本的命令如下:

mkdir /usr/local/redis
mkdir /usr/local/redis/copy
vi /usr/local/redis/copy/redis_rdb_copy_hourly.sh
mkdir /usr/local/redis/snapshotting
chmod 777 /usr/local/redis

然后编写这个脚本文件:

#!/bin/sh 

cur_date=`date +%Y%m%d%H`
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`
rm -rf /usr/local/redis/snapshotting/$del_date

脚本解释:

  • cur_data 代表当前时间,精确到小时,比如 2021080616。
  • 删除当前小时的快照文件。
  • 创建当前小时的备份文件,文件为空的。
  • 拷贝当前的快照文件到上一步创建的空的备份文件中。
  • del_date 代表 48 小时以前的时间,精确到小时,比如 2021080416。
  • 删除 48 小时以前的备份文件。

设置定时任务,每个小时的 0 分跑一次脚本:

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

因为要等到下一个小时的 0 点,所以就手动运行脚本来测试:

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

会在 snapshotting 文件夹创建一个目录:2021080809,表示这是 2021-08-08 09 时的备份文件夹(注意这个时间是 UTC 时间)。这个目录里面还会有一个 dump.rdb 文件。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2ozk74r534mcg

 

最新文章

  1. ios应用程序结构
  2. paper
  3. Redmine插件
  4. 以全局监听的方式处理img的error事件
  5. 微信智慧KTV上线 不怕周末订不到包厢了
  6. magento-connect-manage出现404或者500内部错误的解决办法
  7. 在vs2005中使用SVN进行版本管理
  8. Cacti优化之spine轮询器
  9. 大端模式&小端模式、主机序&网络序、入栈地址高低问题
  10. logback自定义格式转换器
  11. php 系列
  12. 【XSY3320】string AC自动机 哈希 点分治
  13. 【转载】Nginx + Tomcat 实现反向代理
  14. Shell脚本处理JSON数据工具jq
  15. javascript中的iterable
  16. [C#] 一款代码注释清理工具
  17. 【次小生成树】【Kruskal】【prim】【转】
  18. 用光的微粒说和广义相对论来解释衍射现象 Explanation of Diffraction Phenomenon by Particle Theory of Light and General Relativity
  19. NOIp 2018 提高组
  20. 包含.h就可以用其对应的函数

热门文章

  1. vue axios请求中断的处理
  2. AIR32F103(九) CAN总线的通信和ID过滤机制及实例
  3. dom添加样式可以这样写
  4. Word 段落首行缩进
  5. 《话糙理不糙》之如何在学习openfoam时避免坑蒙拐骗
  6. LeetCode-398 随机数索引
  7. Ubuntu离线安装 MySQL 5.7
  8. Shiro+SpringBoot前后端分离中跨域,sessionId,302问题
  9. 524. 通过删除字母匹配到字典里最长单词 (Medium)
  10. .Net Core Elasticsearch 时间查询问题