您好我有多个数据库需要每天备份。目前,我正在使用cronjob设置批处理文件进行备份。这是我的情况,我有大约10个数据库需要备份,其中3个增长速度非常快,让我告诉你当前的数据库大小:
我的批处理文件代码是:
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天,对我来说似乎很好。但我想知道,如果它在执行批处理文件时会影响我的网站性能。
如果这种方法不好,你如何备份多个数据库,并且每天都在不断增加?
答案 0 :(得分:1)
这取决于表格类型。如果表是innoDB,那么您应该使用--single-transaction
标志,以便转储一致。如果您的桌子是MyISAM,那么您有一个小问题。如果按原样运行mysqldump,则转储将导致表在执行转储时锁定(无写入)。随着数据库变得越来越大,这显然是一个巨大的瓶颈。您可以使用--lock-tables=false
选项覆盖此选项,但您可以保证备份中不会包含一些不一致的数据。
理想的解决方案是让生产环境之外的备份复制从服务器进行转储。
答案 1 :(得分:0)