MySQL增量恢复数据实践

/ Database / 没有评论 / 1805浏览

前提

数据库有全备和开启binlog日志

误操作之后

线上的话,先锁库

FLUSH TABLES WITH READ LOCK;

导入之前的全备

mysql -uroot -p < /home/mysql_3.24.sql

binlog日志操作

取出最后一个或者两个,视情况而定(我的是48结尾的这个)

mysqlbinlog mysql-bin.000048 > /home/48.sql

剔除关键语句

删掉drop等关键SQL语句

sed -i '/^drop.*/d' /home/48.sql

然后导入增量这些数据

mysql -uroot -p  < /home/48.sql

解锁数据库

UNLOCK TABLES;

总结

1.每个数据库配置都有差异,看数据量大小,一般发生误操作之后,需要恢复的就是最后一个binlog文件

2.可以代替锁库操作的是利用iptables