1

目前我的数据库差不多20 GB大,仍在增长。 我正在使用mysqldump进行每日备份,它变得非常慢。 如此缓慢,在此期间新的连接叠起来,并最终导致这个错误:什么时mysqldump变得非常慢

SQLSTATE[HY000] [1040] Too many connections 

(我能改善多数民众赞成接受的连接的数量,但由于连接仍然只是冻结,不会做任何事情,等待备份完成,这将导致超时)

我已经读了一些选项,以便提高速度,这就是我发现:

  1. 选项--quick(威尔可能有帮助)
  2. 选项--single-transaction(将防止表被锁定,但可能导致数据库变得不正确)
  3. 主从复制(可能是我能做的最好的事情,一个问题,我只有一个服务器可用)

主从复制真的听起来像是最好的选择,因为我可以停止从机更新,进行备份,并让它恢复同步。问题是我只有一台机器可以使用。

我知道我可以在这台服务器上设置多个mysql实例。问题是:这样做明智吗? 从站实际上只用于生成备份文件(该文件将被复制到网络上的其他磁盘上),以便主站可以保持活动状态。

+0

我不知道,但是,不能mysqldump做没有交易的工作吗?这可能不是最好的解决方案,但我想不出其他任何东西。 – 2012-07-29 23:47:46

+0

每日转储20GB?男性,2个月内超过TB? – emaillenin 2012-07-30 03:24:37

+0

单事务或表锁定用于对InnoDb或MyIsam表进行一致转储。我不认为这些选择可能会加速倾销。尝试在[dbForge Studio for MySQL](http://www.devart.com/dbforge/mysql/studio/)的数据库备份功能的帮助下备份数据库,它使用一些线程进行转储。 – Devart 2012-07-30 07:24:18

回答