使用 NineData 构建任意时间点(PITR)数据恢复能力
在当前数字化经济的时代下,数据成为企业的关键资产。但因数据误删、服务器故障、病毒入侵等原因导致数据丢失影响业务,会对公司造成重大损失,所以如何保证数据资产的安全、稳定及可用,是企业必须考虑的事情。
在日常工作中,数据被误删的原因有很多,如:误操作、程序 bug、病毒等,也正因这样,时不时会传出某某公司数据被误删的新闻。如果数据被误删,需要将数据库恢复到事故发生前的那一刻,这个操作过程不仅复杂,还要依赖经验丰富的 DBA 来进行恢复。那如何能快速的进行任意时间点恢复(Point-in-time Recovery)呢?NineData 推出的 恢复方式(按时间点、备份集)很好的解决上面说的问题,在解放了 DBA 复杂的手动操作外,也不用担心“删库跑路”的事情发生。
1、任意时间点恢复
▋恢复流程
NineData 完成基于时间点恢复(PITR)的过程如下:
新增新的一个数据库实例,为恢复所用,也可以用本地实例(需要修改恢复的库名);
找到误删操作之前的最近一次全量备份,恢复到新实例;
回放全量备份之后的 BINLOG,到误删操作之前的时间点为止。
2、如何使用指定时间点的恢复
▋环境说明
使用指定时间点恢复功能前,需要先使用 NineData 的备份功能,先备份出一个类型为「表结构+全量数据+日志数据」的备份集。假如您已经通过 NineData 的备份功能完成了一个数据库的备份,那么只需要简单的几步,就可以完成指定时间点的恢复了。
已有的备份集的备份类型:表结构+全量数据+日志数据
假如用户数据库「backup_resotre_db」下有 3 张表「user_info、user_info_x、user_info_y」
NineData 备份恢复测试
▋恢复说明
18:22 分,用户把表「user_info」给 DROP 掉了(全量备份中该表只有 1 条记录,DROP 的时候,该表有 3 条记录,有 2 条记录需要通过增量恢复),此时业务出现报错,需要紧急进行恢复。即使通过专业的 DBA 同学来进行恢复,也需要大量的手动操作进行全量+增量恢复,如果在进行增量恢复期间遇到解析 binlog 异常(如字符集报错),还会浪费更多的时间处理,导致 RTO 时间不可控。如果使用 NineData 的指定时间点恢复能力,那么只需要简单的几步,就可以完成指定时间点的恢复了。
a. 创建恢复任务
按照要求,先选择要恢复的源数据实例和备份任务,然后再选择恢复到的时间点(执行 DROP 操作前的时间)。
b. 选择要恢复的对象,可以恢复整个库,也可以选择恢复被 DROP 的表。
c. 选择要恢复到哪个目标数据库,可以是新数据源,也可以是当前的数据源(需要修改恢复后的数据库名)。
d. 预检查步骤中会进行相关的字符集、大小写敏感、时区等关键项目的检查,确保恢复正常。
e. 启动任务后,可以看到任务的相关信息,直到任务完成。
f. 数据恢复完成。
通过上面对「任意时间点恢复」的说明,可以看到在 NineData 上简简单单的几步操作,就能轻松的实现数据任意时间点恢复的能力。在减少 RTO 的同时,也缩短了运维人员处理数据恢复的时间,最终保护了企业的核心数据。
小结
通过这篇介绍,可以了解到如何使用 NineData (www.ninedata.cloud/backup),快速简单的实现任意时间点数据恢复的能力。另外,NineData 推出的备份数据查询(全量、按时间点)和 数据变更轨迹查询 功能,也能很好的解决数据误删恢复的问题,有效保护企业的核心数据,为企业在数据安全上构筑起最后一道防线。
评论