一次备份多个数据库[MySQL]?

时间:2010-02-08 03:32:00

标签: mysql backup cron database

您好我有多个数据库需要每天备份。目前,我正在使用cronjob设置批处理文件进行备份。这是我的情况,我有大约10个数据库需要备份,其中3个增长速度非常快,让我告诉你当前的数据库大小:

  • DB1 = 35 mb
  • DB2 = 10 mb
  • DB3 = 9 mb
  • 其余:DBx = 5 mb

我的批处理文件代码是:

mysqldump -u root -pxxxx DB1 > d:/backup/DB1_datetime.sql
mysqldump -u root -pxxxx DB2 > d:/backup/DB2_datetime.sql
... and so for the rest

我已经运行了2天,对我来说似乎很好。但我想知道,如果它在执行批处理文件时会影响我的网站性能。

如果这种方法不好,你如何备份多个数据库,并且每天都在不断增加?

2 个答案:

答案 0 :(得分:1)

这取决于表格类型。如果表是innoDB,那么您应该使用--single-transaction标志,以便转储一致。如果您的桌子是MyISAM,那么您有一个小问题。如果按原样运行mysqldump,则转储将导致表在执行转储时锁定(无写入)。随着数据库变得越来越大,这显然是一个巨大的瓶颈。您可以使用--lock-tables=false选项覆盖此选项,但您可以保证备份中不会包含一些不一致的数据。

理想的解决方案是让生产环境之外的备份复制从服务器进行转储。

答案 1 :(得分:0)

如果您仍在寻找一种方法,那么您可能会感兴趣:this

它使用转储为每个数据库创建一个文件,这样可以节省大量时间进行第一次配置。

希望它有所帮助,问候。