2012-10-17 61 views
1

是否足够,以添加选项--single-transaction在mysqldump的创建具有一致性备份..的InnoDB与--single-交易或复制

或者你需要设置主/从复制?

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

该数据库只包含InnoDB表

回答

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是正确的。