本文共 834 字,大约阅读时间需要 2 分钟。
数据库中表被误删除 恢复方法
首先分析表是否重要 1 重要的情况处理 1 停服务,挂维护页面,保证数据一致性 2 找一个新的数据库做恢复测试,同时对故障库进行备份 3 恢复前日备份,恢复完毕后 拷贝 binlog过来 4 查找binlog位置,获取故障前一刻binlog位置 追binlog 5 启动测试 6 对外启动服务要确保我们有之前的备份,要已经了开启binlog日志
查看当前使用的binlog日志 show master status;先手动切割出一份binlog让所有数据写到新的binlog上面
mysqladmin -uroot -p flush-log拷贝离问题点最近的binlog日志
cp /application/mysql/data/mysql.00000x /tmp/查看position号,
全备的时候加了master-data=2 在备份中会有POS号,表示这次备份到这个POS号结束把binlog二进制文件导出成SQL语句,把错误语句排除
从备份文件中找到最后POS号,在binlog备份时,从此POS号开始 mysqlbinlog --skip-gtids --start-position=194–stop-position=1519 -d he /data/binlog/mysql-bin.000006 >/backup/bin.sql -d 只导出指定库的SQL语句 如果开启了GTID 则必须要加上–skip-gtids参数 或 找出并删除错误语句 mysqlbinlog --skip-gtids -d he /data/binlog/mysql-bin.000006 >/backup/bin.sql vim bin.sql 把出问题的sql语句删除掉恢复最近一次备份
mysql -uroot -p he < /tmp/all_bak.sql把修改好的数据导入
mysql>source bin.sql转载地址:http://yurpb.baihongyu.com/