linux系统 centos.我数据库使用的是mysql5.7
在使用 mysql -uroot -padmin goods </root/goods.sql后
然后执行
mysqlbinlog --start-position=154 --stop-position=700 --database=goods binlog000030 binlog000032 > /root/goods_diff.sql
其中start-position=154的值是全量备份goods.sql CHANGE MASTER这一行MASTER_LOG_POS。binlog.000030日志是CHANGE MASTER是MASTER_LOG_POS. stop-position=700.这个日志点是在binlog000032日志文件中INSERT语句前面找到的.
执行完这个语句后,神奇的现象出现了。WARNING:the option --database has been used, it may filter parts of transactions,but will include the GTIDs in any case,if you want to exclude or include transaction,you should use the options --exclude -gtids or --include-gtids,repectively,instead.
这里只是一个warning,我也就不在乎。但是我执行了
mysql -uroot -padmin goods < /root/goods_diff.sql,此时并没有恢复到insert之前的状态。我才意识到问题的严重性。明天就要给甲方交付自动化恢复的shell脚本。老师知道这是什么原因造成的吗?