MySQL 误操作恢复表
说来好巧~前段时间正在写数据恢复应急预案,周一开发就delete掉表了,不慌不忙给恢复了,之后要经常做数据库恢复预演,加快数据的恢复时间
开源工具地址: https://github.com/danfengcao/binlog2sql
误drop表恢复,使用mysqldump备份
1.ddl删除表不能开源binlog解析sql工具做恢复,需要配合备份一起来完成ddl恢复首先使用sed命令提取出建表的sql
sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `$table_name`/!d;q' $dbname.sql | mysql -u -p -h $dbname
2.提取出insert语句
grep --ignore-case 'insert into `$table_name`' $dbname.sql | mysql -u -p -h $dbname
3.使用binlog2sql找到drop之前的操作
python binlog2sql.py -h -u -p -P -d -t --start-file='' --start-file '' | mysql -u -p -h $dbname
DML恢复
python binlog2sql.py --flashback -h -u -p -P -d -t --start-file 'bin-log-mysqld.000011' | mysql -u -p -h