MySQL备份过程减慢了插入和更新的速度

时间:2013-02-26 12:53:42

标签: mysql sql database backup mysqldump

目前我正在使用mysqldump程序创建备份,下面是我如何运行它的示例。

mysqldump --opt --skip-lock-tables --single-transaction --add-drop-database 
--no-autocommit -u user -ppassword  --databases db > dbbackup.sql

我在一天中对我的数据库执行了很多插入和更新,但是当这个过程开始时它真的会减慢插入和更新速度,有没有人看到我备份它的方式有任何缺陷? (例如表被锁定),或者有没有办法可以改进备份过程,因此它不会影响我的插入和更新?

感谢。

2 个答案:

答案 0 :(得分:0)

在不干扰生产数据库的情况下执行此操作的最佳方法是设置主/从复制,然后从从属数据库执行转储。

有关MySQL复制的更多信息http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

答案 1 :(得分:0)

即使使用--skip-lock-tables,mysqldump也会在每个表上发出READ锁以保持一致性。 使用mysqldump将始终锁定您的数据库。要执行热的mysql备份,您需要设置一个slave(这意味着一些成本)或使用一些专用工具,如Percona Xtrabackup(http://www.percona.com/software/percona-xtrabackup),如果你的数据库是innoDB,那就是 (我们在奴隶上使用xtrabackup备份数据,没有问题。如果您的数据库不是那么大,拥有一个奴隶并锁定它来执行备份应该不是那么大的交易:))