xxxx18一20岁hd第一次

真枪实弹!Redis 「冷备」让您睡个冷静觉zZ

发布日期:2022-06-18 17:10    点击次数:158

真枪实弹!Redis 「冷备」让您睡个冷静觉zZ

全球好,我是悟空呀。

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。

 本文转载自微信公众号「悟空聊架构」,不错通过以下二维码关切。转载本文请有关悟空聊架构公众号。

 



栏目分类



Powered by xxxx18一20岁hd第一次 @2013-2022 RSS地图 HTML地图