全量备份+增量备份
常见的数据库安全性策略是:全量备份+增量备份。
全量备份:定期(例如一个月)将库文件全量备份
增量备份:定期(例如每天)将 binlog 增量备份
如果不小心误删了全库,可以这么恢复:
- 将最近一次全量备份的全库找到,拷贝回来(文件一般比较大),解压,应用
- 将最近一次全量备份后,每一天的增量 binlog 找到,拷贝回来(文件较多),依次重放
- 将最近一次增量备份后,到执行“删全库”之前的 binlog 找到,重放
恢复完毕。为了保证方案的可靠性,建议定期进行恢复演练。
方案优点:能够找回数据
方案缺点:恢复时间非常长
1小时延时从
使用1小时延时从库,可大大加速“删全库”恢复时间。
什么是1小时延时从?
如图所示,增加一个从库,这个从库不是实时与主库保持同步的,而是每隔1个小时同步一次主库,同步完之后立马断开1小时,这个从库会与主库保持1个小时的数据差距。
当“删全库”事故发生时,只需要:
- 应用1小时延时从
- 将1小时延时从最近一次同步时间到,将执行“删全库”之前的 binlog 找到,重放
快速恢复完毕。
方案优点:能够快速找回数据
潜在不足:万一,万一,万一,1小时延时从正在连上主库进行同步的一小段时间内,发生了“删全库”事故,那怎么办咧?
双份1小时延时从
使用双份1小时延时从库,可以避免上述“万一,万一,万一”的事故发生。
什么是双份1小时延时从?
如图所示,两个1小时延时从,他们连主库同步数据的时间“岔开半小时”。
这样,即使一个延时从连上主库进行同步的一小段时间内,发生了“删全库”事故,依然有另一个延时从保有半小时之前的数据,可以实施快速恢复。
方案优点:没有万一,都能快速恢复数据
潜在不足:资源利用率有点低,为了保证数据的安全性,多了2台延时从,降低了从库利用率
提高从库效率
1小时延时从也不是完全没有用,对于一些“允许延时”的业务,可以使用1小时延时从,例如:
- 运营后台,产品后台
- BI进行数据同步
- 研发进行数据抽样,调研
总结
保证数据的安全性是 DBA 第一要务,需要进行:
- 全量备份+增量备份,并定期进行恢复演练,但该方案恢复时间较久,对系统可用性影响大
- 1小时延时从,双份1小时延时从能极大加速数据库恢复时间
- 个人建议1小时延时从足够,后台只读服务可以连1小时延时从,提高资源利用率
作者:殷建卫 链接:https://www.yuque.com/yinjianwei/vyrvkf/wh44c5 来源:殷建卫 - 架构笔记 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。