各人好,我是悟空呀。
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 文献。如下图所示:
和每小时备份近似,先创建一个每天备份一次的剧本:
vi /usr/local/redis/copy/redis_rdb_copy_daily.sh chomd 777 *
编写剧本:
#!/bin/sh cur_date=`date +%Y%m%d` 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 -1month +%Y%m%d` rm -rf /usr/local/redis/snapshotting/$del_date
创建每天备份一次的定时任务:
crontab -e 0 0 * * * sh /usr/local/redis/copy/redis_rdb_copy_daily.sh
手动奉行备份剧本:
cd /usr/local/redis/copy ./redis_rdb_copy_daily.sh
会在 snapshotting 文献夹创建一个目次:20210808,示意这是今天 2021-08-08 的备份文献夹(细心这个时代是 UTC 时代)。这个目次内部还会有一个 dump.rdb 文献。如下图所示:
另外这些备份提议都上传到云职业器上,多个场合备份加多一份安全感。(云职业同步的后续再先容。)
今晚就不错睡个从容觉了~
从备份文献中归附假定一种场景:几个小时前上线的关节把 Redis 的数据都羞耻了,数据错了,该怎么办?
不错选拔某个更早的时代点的备份文献进行归附。
归附的过程
罢手 Redis,暂时关闭 AOF 的经久化成立。 删除 AOF 日记文献和 RDB 快照文献。 拷贝 RDB 快照文献到 Redis 的 RDB 文献加载目次。 重启 Redis,说明数据归附顺利。 热修改 Redis 的 AOF 经久化成立,Redis 会将内存中的数据写入到 AOF 文献中。 再次罢手 Redis,手动修改成立文献,绽开 AOF 经久化,退缩热修改不收效。 再次重启 Redis。本文转载自微信公众号「悟空聊架构」,不错通过以下二维码关怀。转载本文请关系悟空聊架构公众号。