适用于高流量站点的MySQL备份策略

时间:2011-03-25 20:37:24

标签: mysql database backup replication traffic

我目前正在使用mysqldump来备份规模迅速增长的数据库。虽然我在深夜运行它,但是当它在高流量时刻(有时会在晚上发生)运行时偶尔出现问题。例如,昨晚我的一个站点在数据库备份时间之后锁定了一个完整的(非清除)进程列表。

有没有人建议更好的方法来解决这个问题?在备份期间将站点置于临时维护状态不是一种选择,因为目标是最大化可用性(某些sql转储需要一段时间)。想到的一个想法是运行主副本和从属副本并关闭+备份从副本,在此过程中保留主副本。希望有一个更简单的解决方案 - 除非绝对必要,否则我宁愿不为备份目的运行从属副本。有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:2)

两个想法:

  1. 运行奴隶。如果没有别的,它可以为您的生产流量提供温暖的备用,以防出现故障。您还可以从中运行报表和工具,从生产服务器中释放周期。
  2. 访问innodb并使用mysqldump --single-transaction (see man page)
  3. 祝你好运!

答案 1 :(得分:0)

我使用Percona Xtrabackup,它与InnoDB Hot Backup类似,具有更多功能,并且免费分发。 Xtrabackup在没有锁定innodb表的情况下获取快照,并且如果您要从从站进行备份,则会记录当前的主日志文件信息,如果需要,还会记录从属信息。

我建议运行一个slave并像这样或使用mysqldump进行备份。从机为您提供热备份,如果主机由于硬件问题或各种软件或用户错误问题导致服务器崩溃,您可以在几分钟内快速切换到并启动并运行。使用xtrabackup或mysqldump进行备份会为您提供一个备份,您可以使用该备份来备份数据,以防您意外删除表或删除一些您不应该拥有的行,因为复制的服务器不会将您保存在那里。