还原MySQL误删表数据示例

记录一个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 

你可能感兴趣的:(还原MySQL误删表数据示例)