0

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

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

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

谢谢。

4

2 回答 2

0

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

于 2013-02-28T00:31:22.707 回答
0

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

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

于 2013-02-26T13:04:27.093 回答