31.mysql误删数据

194 阅读1分钟

我们经常会不小心删除数据库的数据,下面介绍几种恢复数据的办法。

数据行

Flashback工具通过闪回把数据恢复回来。做的一些误操作,反过来执行这些语句就能恢复过来。

误删: image.png

恢复: image.png

先备份出来一个数据库或者直接使用从库,不在主库上操作恢复。再次确认临时库的数据是否正确,恢复回主库。

在主库上恢复数据,如果这时业务正在执行,会造成二次污染。

delete和drop table区别

delete删除数据会写入日志,性能慢

drop table不会写入日志,性能快

数据表、库

全量备份生成一个临时库,日志文件将除了误删除的语句,全部在临时库上执行。

image.png

延迟复制备库

一个延迟复制的备库是一个比较特殊的存在,如果主库误删除数据,其他备库就会开始执行日志也跟着删除。给延迟复制备库设置一个延迟时间,比如一个小时,主库发生误操作,在一小时内备库跳过误操作,恢复需要的数据。

预防误删库的方法

  • 账号分离,给开发同事的账号权限做设置。
  • 要删除的表先做一个改名操作,如果没有影响业务正常运行,再删除

rm删除数据

数据库集群误删除一个节点,系统会自动选出一个新节点。我们要做的是把节点恢复回来,接回到集群里。