db如何快速回滚和恢复,DBA的神技能!

  【本文作者:58沈剑,本文来架构师之路微信公众号,转载和授权请联系原作者】
  
  
技术人如果经常线上操作DB,河边走久了,难免出现纰漏:

  update错数据了

  delete错数据了

  drop错数据了

  咋办?找DBA恢复数据呗,即使恢复不了,锅总得有人背呀。

  画外音:把数据全删了,怎么办,怎么办?

  零,哪种方案不能实现数据恢复?

  从“从库”恢复数据。

  一般来说数据库集群是主从架构:

db如何快速回滚和恢复,DBA的神技能!

  全量备份:定期(例如一个月)将库文件全量备份。

db如何快速回滚和恢复,DBA的神技能!

  什么是1小时延时从库?

  如上图所示,增加一个从库,这个从库不是实时与主库保持同步的,而是每隔1个小时同步一次主库,同步完之后立马断开1小时,这个从库会与主库保持1个小时的数据差距。

  当“删全库”事故发生时,如何利用“1小时延时从库”快速恢复数据?

  (1)应用1小时延时从;

  (2)将1小时延时从最近一次同步时间到,执行“删全库”之前的binlog找到,重放

  快速恢复完毕。

  这个方案的优点是,能够快速找回数据。潜在不足是,万一“1小时延时从库”正在连上主库进行同步的一小段时间内,发生了“删库”事故,也无法恢复。

  四,如果DBA做了“双份1小时延时从库”,应该怎么处理?

db如何快速回滚和恢复,DBA的神技能!

  对于一些“允许延时”的业务,可以使用1小时延时从,例如:

  (1)运营后台,产品后台;

  (2)BI进行数据同步;

  (3)研发进行数据抽样,调研;

  但需要注意的是,毕竟这是从库,只能够提供“只读”服务哟。

  五,总结

  保证数据的安全性是DBA第一要务:

  (0)理论上可以恢复+跑路;

  (1)全量备份+增量备份+定期演练;

  (2)1小时延时从库;

  (3)双份1小时延时从库+提高资源利用率;

  DBA的神技能,学到了吗,求转。

  贵司用的是哪种方案?