innoDB与--single-transaction或复制

时间:2012-10-17 17:17:00

标签: mysql database-replication database-backups

在mysqldump中添加选项--single-transaction以创建具有一致性的备份是否足够..

或者您是否需要设置主/从复制?

mysqldump --single-transaction -h localhost -u root ...

数据库仅包含innoDB表

1 个答案:

答案 0 :(得分:3)

是,

mysqldump --single-transaction ...

执行

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
UNLOCK TABLES
...

所以这将为您提供一致性。您无需设置复制。

供参考:

mysqldump ... (same as mysqldump --lock-tables ...)

执行:

LOCK TABLES `table1` READ /*!32311 LOCAL */
...
UNLOCK TABLES
...
LOCK TABLES `table2` READ /*!32311 LOCAL */
...
UNLOCK TABLES
...

mysqldump --lock-all-tables ...

执行:

FLUSH TABLES
FLUSH TABLES WITH READ LOCK
...

所以根据您的需要,mysqldump --single-transaction是正确的。