mysql误删除恢复及mysqldump两个参数理解

mysqldump 两个参数的理解
--single-transaction
通过将导出操作封装在一个事务内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了–single-transaction选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句:ALTER TABLE, DROP TABLE, RENAME TABLE,TRUNCATE TABLE,这会导致一致性快照失效。这个选项开启后会自动关闭–lock-tables。

–master-data
这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER命令;如果等于2,会加上注释前缀。并且这个选项会自动打开–lock-all-tables,除非同时设置了–single-transaction(这种情况下,全局读锁只会在开始dump的时候加上一小段时间,不要忘了阅读–single-transaction的部分)。在任何情况下,所有日志中的操作都会发生在导出的准确时刻。这个选项会自动关闭–lock-tables。


mysql误操作恢复方法
1.常用方法(备份恢复)
start slave until MASTER_LOG_FILE='mysql-bin.002974', MASTER_LOG_POS=55056952;
恢复出到一个临时的实例,将误删除,更新的数据 dump 出来并恢复到老的实例里面。


2.利用开源工具binlog2sql 恢复
binlog2sql 是大众点评公司的DBA 开发的一款基于通过解析binlog将delete 恢复为insert,update 的值 set 字段和where条件做对调的原理来恢复数据的。

安装
pip install -r requirments.txt
python binlog2sql.py -h127.0.0.1 -P3307 -udba -p'dbadmin' -dyang -tflashback --start-file='mysql-bin.000011'
使用-B生成恢复sql

猜你喜欢

转载自www.cnblogs.com/duanzexun/p/10966614.html
今日推荐