使用 NineData 构建任意时间点( PITR )数据恢复能力
在日常工作中,数据被误删的原因有很多,如:误操作、程序bug、病毒等,也正因这样,时不时会传出某某公司数据被误删的新闻。如果数据被误删,需要将数据库恢复到事故发生前的那一刻,这个操作过程不仅复杂,还要依赖经验丰富的DBA来进行恢复。那如何能快速的进行任意时间点恢复(Point-in-time Recovery)呢?NineData 推出的 恢复方式(按时间点、备份集)很好的解决上面说的问题,在解放了DBA复杂的手动操作外,也不用担心“删库跑路”的事情发生。
任意时间点恢复
▋恢复流程
NineData 完成基于时间点恢复(PITR)的过程如下:
-
新增新的一个数据库实例,为恢复所用,也可以用本地实例(需要修改恢复的库名); -
找到误删操作之前的最近一次全量备份,恢复到新实例; -
回放全量备份之后的BINLOG,到误删操作之前的时间点为止。
02
如何使用指定时间点的恢复
▋环境说明
-
已有的备份集的备份类型:表结构+全量数据+日志数据
-
假如用户数据库「backup_resotre_db」下有3张表「user_info、user_info_x、user_info_y」
▋恢复说明
-
18:22分,用户把表「user_info」给DROP掉了(全量备份中该表只有1条记录,DROP的时候,该表有3条记录,有2条记录需要通过增量恢复),此时业务出现报错,需要紧急进行恢复。即使通过专业的DBA同学来进行恢复,也需要 大量的手动操作 进行全量+增量恢复,如果在进行增量恢复期间遇到解析binlog异常(如字符集报错),还会浪费更多的时间处理,导致RTO时间不可控。如果使用NineData的指定时间点恢复能力,那么只需要简单的几步,就可以完成指定时间点的恢复了。
03
小结