12> 导出单个库中库结构、表结构、表数据,排除某个表:mysqldump -uxxx -p --databases db1 --ignore-table=db1.test > db1.sql
4. mysqldump 事务 和 数据一致性(锁) 的相关选项
在使用mysqldump逻辑备份时,事务和数据一致性的选项时至关重要的。
1) --single-transaction
Creates a consistent snapshot by dumping all tables in a single transaction. Works ONLY for tables stored in storage engines which
support multiversioning (currently only InnoDB does); the dump is NOT guaranteed to be consistent for other storage engines.
While a --single-transaction dump is in process, to ensure a valid dump file (correct table contents and binary log position), no other
connection should use the following statements: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, as consistent
snapshot is not isolated from them. Option automatically turns off --lock-tables.
--single-transaction 可以得到一致性的导出结果。他是通过将导出行为放入一个事务中达到目的的。
它有一些要求:只能是 innodb 引擎;导出的过程中,不能有任何人执行 alter table, drop table, rename table, truncate table等DDL语句。
--single-transaction 会自动关闭 --lock-tables 选项;上面我们说到mysqldump默认会打开了--lock-tables,它会在导出过程中锁定所有表。
因为 --single-transaction 会自动关闭--lock-tables,所以单独使用--single-transaction是不会使用锁的。与 --master-data 合用才有锁。
2)--lock-tables
该选项默认打开的,上面已经说到了。它的作用是在导出过程中锁定所有表。--single-transaction 和 --lock-all-tables 都会将该选项关闭。