本文分享自华为云社区《GeminiDB PITR,让游戏回档“进退自如”!》,作者:GaussDB 数据库。

在实际业务场景中,客户数据库难免会出现数据损毁、数据丢失、数据误删除等故障场景。为保障业务的正常运行,通常需要将数据库恢复到故障发生前的某一个正常时刻。传统数据库采取周期性备份策略,即在系统故障时对数据进行恢复。因其数据恢复耗时较长,可恢复时间颗粒度较大,导致客户业务受损严重。

什么是PITR呢?

PITR(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。

以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞非法复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口新增的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。

PITR功能优势

1. 备份任务无感,业务更稳健

GeminiDB Redis接口的PITR功能不涉及数据的拷贝,备份任务业务无感知,不影响数据访问,让客户业务更加稳健。

GeminiDB Redis接口快照原理是通过记录文件系统的状态来实现的,而不是通过复制文件本身来实现的,是瞬时生成的;快照存储当前时刻的底层数据的元数据信息,比如数据块信息、寻址信息等,形成快照。因此,当打高速数据快照时,业务可以继续运行,而不会受到任何影响。

在实际测试中,基于客户业务6w的并发数据量对数据库进行访问,开启GeminiDB Redis接口PITR功能,以最小粒度5分钟执行一次快照。

下面是4个时间点每隔5分钟执行一次快照结果(以下为UTC时间,监控时间+8):

观察可知,QPS,CPU,内存,P99时延均无波动,对客户业务无影响。

2. 支持分钟级快速恢复,恢复时长与数据大小无关

PITR数据快照文件可以在本地保存,不用上传到冷存储介质,因此,不涉及数据的拷贝搬迁,还可支持随时数据恢复。

PITR恢复,数据恢复时长与数据大小无关,能快速恢复数百GB数据,通常可在5分钟以内恢复数据,保证客户业务可靠性。除此以外,PITR还可多次前后恢复,恢复到指定时间点后,既可向前,也可向后,让客户使用更省心。

我们分别测试了8U3节点实例,数据100GB和200GB的回档速度。

3. 比开源Redis数据备份性能更优

开源Redis使用多进程写时复制机制来实现快照的持久化。在持久化过程中,调用fork()产生一个子进程,fork()会阻塞Redis长达数百毫秒,对业务产生抖动;fork()的写时复制技术(COW)会造成内存过度使用。如果fork()期间产生大量的写操作,会导致内存严重浪费甚至OOM,通常内存利用率不足50%。而GeminiDB Redis接口的PITR特性不涉及数据的拷贝搬迁,因此,对业务基本无影响,且具有快照速度快,数据稳定,安全等特点。

PITR功能使用方法

1. 如何开启GeminiDB Redis接口 PITR功能?

在控制台,实例详情页->备份恢复->设置恢复到指定时间点策略,即可打开。备份时间间隔最低支持5分钟,最高支持120分钟,保留天数最大支持7天。

2. 如何恢复到执行的时间点?

实例详情页->备份恢复->恢复到指定时间点,便可本实例快速恢复到指定时间点。

总结

GeminiDB PITR执行数据快照业务无感,通常可在5分钟以内恢复到指定时间点,尤其是在业务异常场景可快速回退,降低损失,有效解决传统备份方案时间长、恢复粒度大等痛点问题。因此,GeminiDB在游戏、金融等行业有着广泛应用。

未来,GeminiDB Redis接口会进一步支持并完善数据恢复至某个秒级的时间点功能。也将持续致力于开发更多好用的企业级特性,帮助客户轻松运维,高效开发。我们期待与全球的企业和开发者合作,共同探索数据的未来,推动技术和业务的发展。

点击关注,第一时间了解华为云新鲜技术~

GeminiDB PITR,让游戏回档“进退自如”!的更多相关文章

  1. 第三十 访问财富进退自如 —Spring交易管理

    6月16日本,明确. "应该留给追穷寇勇,不可沽名学霸王.天若有情天亦老,人间正道是沧桑." 有始有终.有往有还.进退自如乃Spring事务管理之道,也是万物生生不息.和谐共处之道 ...

  2. QQ空间玩吧HTML5游戏引擎使用比例分析

    GameLook报道/“Cocos 2015开发者大会(春季)”于4月2日在国家会议中心圆满落下帷幕.在会上全新的3D编辑器,Cocos Runtime等产品重磅公布,给业界带来了Cocos这款国产引 ...

  3. 小程序和APP谁将主导未来?

    APP和小程序的未来会怎么样?小程序的出现真的会加速APP的灭亡吗?今天这篇文章,是对小程序和App未来发展格局的一些思考,更多的是想提醒各位拥抱小程序的的参与者,我们在决定参与这场狂欢的同时,切勿盲 ...

  4. python 爬取腾讯微博并生成词云

    本文以延参法师的腾讯微博为例进行爬取并分析 ,话不多说 直接附上源代码.其中有比较详细的注释. 需要用到的包有 BeautifulSoup WordCloud jieba # coding:utf-8 ...

  5. HTML5 中的 canvas 画布(二)

    绘制图片 一.绘制图片 context.drawImage()(即把图片放到canvas里) var image = new Image();  // 先创建图片对象 image.src = '图片的 ...

  6. #研发解决方案#分布式并行计算调度和管理系统Summoner

    郑昀 创建于2015/11/10 最后更新于2015/11/12 关键词:佣金计算.定时任务.数据抽取.数据清洗.数据计算.Java.Redis.MySQL.Zookeeper.azkaban2.oo ...

  7. Java项目:学生成绩管理系统(一)

    学生成绩管理系统(一) 项目名称:学生成绩管理系统 项目需求分析(Need 需求): (1)该系统的用户分为教师和学生.教师的功能有:管理某一学生或课程的信息以及成绩,包括增.删.查.报表打印等:学生 ...

  8. SQL 语言 - 数据库系统原理

    SQL 发展历程 从 1970 年美国 IBM 研究中心的 E.F.Codd 发表论文到 1974 年 Boyce 和 Chamberlin 把 SQUARE 语言改为 SEQUEL 语言,到现在的 ...

  9. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  10. html5之canvas画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

随机推荐

  1. 深入了解 Spring Cloud Config、Spring Cloud Gateway 与断路器模式

    Spring Microservices 是一个框架,它使用 Spring 框架更容易地构建和管理基于微服务的应用程序.微服务是一种架构风格,其中一个大型应用程序被构建为一组小型.独立可部署的服务.每 ...

  2. Python 中的字符串基础与应用

    在Python中,字符串可以用单引号或双引号括起来.'hello' 与 "hello" 是相同的.您可以使用print()函数显示字符串文字: 示例: print("He ...

  3. 【郑州轻工业大学】HarmonyOS宠物健康系统的开发分享

    原文:https://mp.weixin.qq.com/s/upcS6PcMS7UBR5jgoP7eow,点击链接查看更多技术内容. 本期我们给大家带来的是家庭宠物健康监测系统开发者杨光的分享,希望能 ...

  4. Vue3开源组件库

    最近收到的很多问题都是关于Vue3组件库的问题 今天就给大家推荐几个基于Vue3重构的开源组件库 目前状态都处于Beta阶段,建议大家抱着学习的心态入场,勿急于用到生产环境 Ant-design-vu ...

  5. Ajax 原理是什么?如何实现?

    一.是什么 AJAX全称(Asynchronous Javascript And XML) 即异步的JavaScript 和XML,是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情 ...

  6. Oracle 与当前日期有关的内容

    Oracle 与当前日期有关的内容 求当前日期是周几: 大概就是下面这种方法 to_char(date,'D') Select to_char(date,'ss') from dual取当前时间秒部分 ...

  7. three.js使用Instanced Draw+Frustum Cull+LOD来渲染大场景(开源)

    大家好,本文使用three.js实现了渲染大场景,在移动端也有较好的性能,并给出了代码,分析了关键点,感谢大家~ 关键词:three.js.Instanced Draw.大场景.LOD.Frustum ...

  8. 力扣455(java&python)-分发饼干(简单)

    题目: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j,都有 ...

  9. EasyCV开源|开箱即用的视觉自监督+Transformer算法库

    ​简介:EasyCV是阿里巴巴开源的基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具.EasyCV在阿里巴巴集团内支撑了搜索.淘系.优酷.飞 ...

  10. 开源 Serverless 里程碑:Knative 1.0 来了

    ​简介:近期Knative发布了1.0版本,达到了一个重要的里程碑.Knative自2018年7月首次发布以来, 版本不断的迭代发展,除了无数的错误修复.稳定性和性能增强之外,按时间顺序还进行了一些改 ...