通过PITR实现游戏回档方案概述
应用场景
在实际业务场景中,客户数据库难免会出现数据损毁、数据丢失、数据误删除等故障场景。为保障业务的正常运行,通常需要将数据库恢复到故障发生前的某一个正常时刻。传统数据库采取周期性备份策略,即在系统故障时对数据进行恢复。因其数据恢复耗时较长,可恢复时间颗粒度较大,导致客户业务受损严重。
方案总览
PITR(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。
以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口新增的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。
方案优势
GeminiDB Redis接口的PITR技术执行数据快照业务无感,通常可在5分钟以内恢复到指定时间点,尤其是在业务异常时可以快速回退,降低损失,有效解决传统备份方案时间长、可恢复时间粒度大等痛点问题。因此,GeminiDB Redis接口在游戏、金融等行业有着广泛应用。
- 备份任务无感,业务更平稳
GeminiDB Redis接口的PITR功能不涉及数据的复制,备份任务业务无感知,不影响数据访问,让客户业务更加平稳。
GeminiDB Redis接口快照原理是通过记录文件系统的状态来实现的,是瞬时生成,而不是通过复制文件本身来实现的。快照存储当前时刻的底层数据的元数据信息,比如数据块信息、寻址信息等,形成快照。因此,当打数据快照时,业务可以继续运行,而不会受到任何影响。
- 支持分钟级快速恢复,恢复时长与数据大小无关
PITR数据快照文件可以在本地保存,不用上传到冷存储介质,因此,不涉及数据的复制搬迁,还可支持随时数据恢复。
PITR恢复,数据恢复时长与数据大小无关,能快速恢复数百GB数据,通常可在5分钟以内恢复数据,保证客户业务可靠性。除此以外,PITR还可多次前后恢复,恢复到指定时间点后,既可向前,也可向后,让客户使用更省心。
- 比开源Redis数据备份性能更优
开源Redis使用多进程写时复制机制来实现快照的持久化。在持久化过程中,调用fork()产生一个子进程,fork()会阻塞Redis长达数百毫秒,对业务产生抖动。fork()的写时复制技术(COW)会造成内存过度使用,如果fork()期间产生大量的写操作,会导致内存严重浪费甚至OOM,通常内存利用率不足50%。而GeminiDB Redis接口的PITR特性不涉及数据的复制搬迁,因此对业务基本无影响,且具有快照速度快、数据稳定、安全等特点。
方案详情
如何开启GeminiDB Redis接口PITR功能并执行恢复到指定时间点,请参考通过PITR回档恢复到当前实例。