我们经常会不小心删除数据库的数据,下面介绍几种恢复数据的办法。
数据行
Flashback工具通过闪回把数据恢复回来。做的一些误操作,反过来执行这些语句就能恢复过来。
误删:
恢复:
先备份出来一个数据库或者直接使用从库,不在主库上操作恢复。再次确认临时库的数据是否正确,恢复回主库。
在主库上恢复数据,如果这时业务正在执行,会造成二次污染。
delete和drop table区别
delete删除数据会写入日志,性能慢
drop table不会写入日志,性能快
数据表、库
全量备份生成一个临时库,日志文件将除了误删除的语句,全部在临时库上执行。
延迟复制备库
一个延迟复制的备库是一个比较特殊的存在,如果主库误删除数据,其他备库就会开始执行日志也跟着删除。给延迟复制备库设置一个延迟时间,比如一个小时,主库发生误操作,在一小时内备库跳过误操作,恢复需要的数据。
预防误删库的方法
- 账号分离,给开发同事的账号权限做设置。
- 要删除的表先做一个改名操作,如果没有影响业务正常运行,再删除
rm删除数据
数据库集群误删除一个节点,系统会自动选出一个新节点。我们要做的是把节点恢复回来,接回到集群里。