前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis实战(三)Redis冷备如何做

Redis实战(三)Redis冷备如何做

作者头像
用户10168815
发布2023-02-28 12:31:27
4600
发布2023-02-28 12:31:27
举报
文章被收录于专栏:架构进阶之路

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

企业级冷备方案

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

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

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

备份方案

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

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

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

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

每小时备份

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

代码语言:javascript
复制
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

然后编写这个脚本文件:

代码语言:javascript
复制
#!/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 分跑一次脚本:

代码语言:javascript
复制
crontab -e
0 * * * * sh /usr/local.redis/copy/redis_rdb_copy_hourly.sh

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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 企业级冷备方案
    • 备份方案
    相关产品与服务
    云数据库 Redis
    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档