记录一个MySQL备份还原的案例。
流程
1. 3pm全量备份数据(3条)
2. 5pm插入新数据(3条)
3. 7pm误删表数据
4. 8pm继续插入新数据(3条)
5. 9pm发现问题,还原数据
具体执行
1. 全量备份数据
mysql> insert into t1 values (1,10),(2,20),(3,30);
mysqldump -uroot -p test > /var/lib/backup/backup.sql
2. 插入新数据
mysql> insert into t1 values (4,40),(5,50),(6,60);
3. 误删表数据
msyql> delete from t1;
4. 继续插入新数据
mysql> insert into t1 values (7,70),(8,80),(9,90);
5.还原全量备份数据
mysql -uroot -p test < /var/lib/backup/backup.sql
定位需要补充的日志记录(假设分别为1905至2679,2982至3258)
mysqlbinlog --base64-output=decode-rows -v localhost-bin.000001
根据位置查看日志记录
mysqlbinlog --base64-output=decode-rows -v --start-position=1905 --stop-position=2679 localhost-bin.000001
导入并应用日志
mysqlbinlog --start-position=1905 --stop-position=2679 localhost-bin.000001 | mysql -uroot -p
mysqlbinlog --start-position=2982 --stop-position=3258 localhost-bin.000001 | mysql -uroot -p