8月 24, 2014 |
Nix.Huang
--single-transaction
这个选项设置事务的隔离级别为REPEATABLE READ,在导出数据之前向服务器发送一个START TRANSACTION SQL语句。这个选项只对支持事务的表有效,
比如innodb表,因为它导出的数据的状态和 START TRANSACTION 执行时数据库的状态是一致,且不会阻塞其他的应用程序。
当使用这个选项,你应该时刻牢记只有导出的innodb表的状态是一致的(只有innodb支持事务),比如,MyISAM 或MEMORY表使用这个选项导出还是有
可能状态改变。
当含有--single-transaction 选项的导出进程正在执行,为了确保导出文件的有效性(表内容和二进制日记的坐标),不能在其他的连接中执行以下
命令:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE。一致性地读操作是不和这些语句隔离的,当使用mysqldump命令导
出数据时执行这些命令会引起导出的内容不正确或者失败。
--single-transaction option 和--lock-tables选项是互斥的,因为LOCK TABLES会隐式的提交打开状态的事务(pending transactions).
导出大表时,联合--single-transaction 和--quick 选项。