--single-transaction
对于事务性存储引擎(Inodb、BDB),为保证数据的一致性和完整性,并且不影响数据库的正常服务,可以添加此参数。当然如果数据量比较大时,可能产生一个很大的事务。
与--lock-tables和--lock-all-tables作用相似,但锁表会影响数据的写入。
mysqldump -uroot -p123456 --single-transaction lmis md_goods_type > goods.sql
--lock-tables和--lock-all-tables
在执行之前会锁定表,执行结束后自动释放锁定。--lock-tables并不是一次性将需要 dump 的所有表锁定,而是每次仅仅锁定一个数据库的表。
如果你需要 dump 的表分别在多个不同的数据库中,一定要使用--lock-all-tables才能确保数据的一致完整性。在执行过程中只允许读取而不允许写入。
一般在备份myisam引擎的表时使用的比较多。
<pre name="code" class="sql">mysqldump -uroot -p123456 --lock-tables bbp > bbp.sql
mysqldump -uroot -p123456 --lock-all-tables -B bbp lmis > bbp.sql