您好,我有多个数据库需要每天备份。目前,我正在使用 cronjob 设置一个批处理文件来备份它。这是我的情况,我有大约 10 个数据库需要备份,其中 3 个正在快速增长,让我向您展示当前的数据库大小:
- DB1 = 35 兆
- DB2 = 10 mb
- DB3 = 9 兆
- 其余: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 天,对我来说似乎还不错。但我想知道,执行批处理文件时是否会影响我的网站性能。
如果这个方法不好,如何备份多个在线数据库,而且每天都在增长?
最佳答案
这取决于表格类型。如果表是 innoDB,那么您应该使用 --single-transaction
标志,以便转储是连贯的。如果您的表是 MyISAM,那么您会遇到一个小问题。如果按原样运行 mysqldump,转储将导致表在执行转储时锁定(不写入)。随着数据库变大,这显然是一个巨大的瓶颈。您可以使用 --lock-tables=false
选项覆盖它,但您可以保证备份中不会有一些不一致的数据。
理想的解决方案是在您的生产环境之外拥有一个备份复制从属服务器以进行转储。
关于mysql - 一次备份多个数据库[MySQL]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219406/