#在数据库可视化工具中,通过以下两条语句,查询mysql操作日志,查找最近两次truncate清理表数据的节点,准备恢复两次truncate之间新建的数据,并新建备份数据库和表,表结构要和原数据库表结构一致
show binary logs;
show binlog events in 'log_name';
#在DOS命令行窗口,把原数据库truncate清除掉的数据,恢复到备份数据库中
mysqlbinlog --rewrite-db="原数据库->备份数据库" --start-position=503860 --stop-position=507768 log_name|mysql -S /tmp/mysql.sock 备份数据库 -uroot -p(数据库登录密码)
#在DOS命令行窗口,把truncate清除掉的某个表数据,恢复到备份表中
mysqlbinlog --rewrite-db="原表->备份表" --start-position=503860 --stop-position=507768 log_name|mysql -S /tmp/mysql.sock 备份表 -uroot -p(数据库登录密码)
#备份用数据库数据,拷贝回原数据库
INSERT INTO 原数据库.表 SELECT * FROM 备份数据库.备份表;
#数据恢复时,也可把操作日志内容,进行截取,生成sql文件
mysqlbinlog --start-position=503860 --stop-position=507768 log_name > sql文件名