mysqldump -uroot test --single-transaction --master-data=2 >master-data.sql
master-data参数在建立slave数据库的时候会经常用到,因为这是一个比较好用的参数,默认值为1,默认情况下,会包含change master to,这个语句包含file和position的记始位置。master- data=2的时候,在mysqldump出来的文件包含CHANGE MASTER TO这个语句,处于被注释状态 dump出文件
使用这个参数可以记录一下我们备份时候binlog的具体位置,在数据出现问题的时候我们可以通过这个记录的节点作为起始点,根据问题问题出现的时间通过binlog日志定位结束点,利使用binlog日志准确的恢复数据。
single-transaction 选项和 lock-all-tables 选项是二选一的,前者是在导出开始时设置事务隔离状态并使用一致性快照开始事务,而后马上unlock tables,然后执行导出,导出过程不影响其它事务或业务连接,但只支持类似innodb多版本特性的引擎,因为必须保证即使导出期间其它操作(事务点t2)改变了数据,而导出时仍能取出导出开始的事务点t1时的数据。而lock-all-tables则一开始就 FLUSH TABLES WITH READ LOCK; 加全局读锁,直到dump完毕。