穿越数据的变迁 - 如何使用阿里云Redis数据闪回进行按时间点的数据恢复-阿里云开发者社区

开发者社区> Lulu66> 正文

穿越数据的变迁 - 如何使用阿里云Redis数据闪回进行按时间点的数据恢复

简介: 如何使用阿里云Redis数据闪回进行按时间点的数据恢复
+关注继续查看

在当下数据为王的时代,客户的业务数据是一个企业的核心资产,各个行业客户都在不断追求在其使用的数据库上有更为强大、细粒度的数据备份恢复功能,以应对各样的数据丢失、业务逻辑错误带来的商业风险。例如,在游戏行业里,有大量客户存在“游戏回档”的实际需求,以应对运营或故障风险。再例如,2020年某上市公司出现删库跑路事件,公司市值遭到严重打击。对于上述情况,传统的定时或手动备份的数据由于存在备份时间点与黑天鹅事件之间的时间差,因此均不是理想完备的解决方案。对于防范上述数据风险,最理想的功能是,数据能够以秒级颗粒度恢复至黑天鹅事件发生的瞬时时间点上。

在传统关系型数据库中(如Oracle)提供了数据闪回功能,帮助客户完成数据的按时间恢复。而在主流的高速缓存产品Redis、Memcached上却鲜有类似的功能,个中原因主要是考虑到作为缓存产品,其中的数据可以丢失,而通过背后配备的持久化、事务性的关系型数据库可以对缓存进行重新加载。但是,随着大量客户对于低延迟的业务应用性能要求不断的提高,对于一些对延迟要求极高的场景下,例如游戏行业,越来越多的客户选择化简架构,将Redis直接作为内存数据库来使用,这便对Redis的数据安全可恢复提出了更大的挑战。阿里云Redis作为行业内的领军产品,拥有国内强大的Redis产品系列,在托管社区Redis版本的同时大力发展自主研发、兼容Redis协议增强型键值存储产品Tair(阿里云Redis企业版)。

其中“更安全”是阿里云Redis向广大客户提供服务的重要部分,针对上述客户诉求,阿里云在Tair中的性能增强版上特别推出了数据闪回功能,帮助客户实现在其指定时间点上恢复指定Redis实例数据的能力,提前为客户可能出现的风险准备好一剂“后悔药”。功能示意如下图所示:

TB1WJr0ZUH1gK0jSZSyXXXtlpXa-1350-926.png

使用这个能够帮助用户穿越数据变迁的黑科技只需简单几步。

  • 开通阿里云Redis企业版性能增强版实例
  • 开启数据闪回功能
  • 正常读写Redis数据库
  • 一旦发生即时数据恢复要求,选择对应实例和欲恢复的时间点,产生新实例
  • 切换应用连接的实例地址

下面以一个简单的示例演示:
首先,我们先对一个阿里云Tair实例写入一些数据,写入脚本如下:

% cat preparerepldata.sh
#!/bin/bash
 
echo "started at: `date +%m%d%H%M%S`"
for i in `seq -f "%010g" 1 $1`
do
    namerand=$[ $RANDOM % 3 ]
    timerand=`date +%m%d%H%M%S`
    nationrand=$[ $RANDOM % 3 ]
    redis-cli -h   r-t4nq2viog3z4rshoxxpd.redis.singapore.rds.aliyuncs.com -a 'gnuhpc:Pa$$w0rd'   hset userprofile foo$timerand $namerand
    sleep 0.75 #consider the   latency for connection establish
done
 
echo "ended at:   `date +%m%d%H%M%S`"

我们运行上述脚本以大约一秒的速率写入带时间戳的KV到一个叫做userprofile的hash结构中,一共写入120个Key,代表业务写入。

% bash preparerepldata.sh   120
OK
OK
…
 
% redis-cli -h hosts -a 'username:password'   hkeys userprofile | wc -l
     120
% redis-cli -h hosts -a 'username:password'   hkeys userprofile | sort -n
foo0803202709
…
foo0803202909

如命令执行所示,我们是在08月03日20:27:09 –08月03日 20:29:09 写入了120条数据。

随后在业务运行中,发现08月03日20:28:10之后,上述业务运行中发生数据风险,我们需要将新创建一个数据库,将原数据库在此时间点之前的数据恢复到这个新的数据库实例中。

我们到阿里云Redis控制台的备份恢复功能,选择数据闪回功能,点击“马上闪回”按钮,选择克隆源类型是“过去时间点”,然后选择要恢复的时间点:

640-2.png

新建的实例就是我们要将指定时间点数据恢复到的目标实例,这里值得一提的数据闪回只要求目标实例容量大于等于源实例,而架构则可以与源实例不同,也就是说用户可以自由选择目标实例为标准主从、集群或者读写分离架构的任何一个。

点击支付后等待片刻后实例创建完毕并完成数据恢复。

我们连接新创建的实例,看看究竟数据恢复的情况如何?

% redis-cli -h hosts -a 'username:password'   hkeys userprofile | wc -l
62

% redis-cli -h hosts -a 'username:password'   hkeys userprofile | sort -n
foo0803202709
…
foo0803202810

可以看到,我们已经成功的恢复数据到了08月03日 20:28:10的数据,在此时间点之后的数据修改均没有生效,用户完美地规避了指定的时间点之后发生的数据风险。

作为全球领先的数据库企业,阿里云数据库的核心理念是更快、更稳、更安全(Faster, Stronger, Securer)的数据库,致力于为用户提供拥有极致性能、高稳定性和更加安全可靠的数据库产品。作为“更安全”的践行,阿里云Redis团队在Redis企业版(Tair)中提供的数据闪回功能,具备了用户指定秒级时间点的数据恢复功能,通过此功能为企业的高贵数据资产做最高级别的保驾护航,客户可以更加放心的将Redis作为内存数据库使用以简化架构与业务的快速迭代。另外,我们云数据库专属集群MyBase还支持Redis,这是阿里云专为大中型企业用户定制优化的解决方案,填补了市场空白,具有资源独享、自主可运维、多数据库混合部署等特点,让用户既享受到云数据库的灵活性,又满足企业对数据库合规性、高性能和安全性要求。

让您不再有“从删库到跑路”的噩梦!阿里云Redis企业版性能增强版特别推出数据闪回功能,帮助客户实现在其指定时间点上恢复指定Redis实例数据的能力,详见https://help.aliyun.com/document_detail/148479.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL pg_rewind,时间线修复,脑裂修复,flashback - 从库开启读写后,回退为只读从库。异步主从发生角色切换后,主库rewind为新主库的从库
PostgreSQL pg_rewind,时间线修复,脑裂修复,flashback - 从库开启读写后,回退为只读从库。异步主从发生角色切换后,主库rewind为新主库的从库
682 0
redis介绍,redis安装,redis持久化,redis数据类型
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。
1496 0
《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer
使用 gptransfer 完成 GPDB 集群间数据迁移任务
4593 0
在医疗保健中使用AI:将数据转化为行动
在医疗保健领域,不乏支持人工智能(AI)好处的统计、调查和行业炒作。人工智能已经在我们的日常生活中发挥了重要作用。医疗保健可能是人工智能对我们日常生活影响最大的领域之一。尽管如此,我们才刚刚开始了解人工智能在医疗服务方面的作用。
229 0
redis数据结构、持久化、缓存淘汰策略
redis数据结构、持久化、缓存淘汰策略Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。
928 0
[20161220]rman恢复时间点的疑问.txt
[20161220]rman恢复时间点的疑问.txt --昨天在恢复时遇到缺少归档的问题,自己开始感觉奇怪,做一点分析记录. RMAN> list backupset summary ; List of Backups =============== ...
842 0
阿里云MySQL云数据库和Redis6.0数据库使用体验
阿里云MySQL云数据库和Redis6.0数据库使用体验
1611 0
使用ServiceStack.Redis实现Redis数据读写
原文:使用ServiceStack.Redis实现Redis数据读写 User.cs实体类 public class User { public string Name { get; set; ...
1461 0
Redis不同数据类型命令使用及应用场景
Redis不同数据类型命令使用及应用场景
2202 0
+关注
18
文章
0
问答
来源圈子
更多
阿里云数据库:帮用户承担一切数据库风险,给您何止是安心!支持关系型数据库:MySQL、SQL Server、PostgreSQL、PPAS(完美兼容Oracle)、自研PB级数据存储的分布式数据库Petadata、自研金融级云数据库OceanBase支持NoSQL数据库:MongoDB、Redis、Memcache更有褚霸、丁奇、德哥、彭立勋、玄惭、叶翔等顶尖数据库专家服务。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
《2021云上架构与运维峰会演讲合集》
立即下载