如何在 MySQL 中备份多 GB 的数据库?更快恢复的奖励积分

nic*_*tro 11 mysql backup

我在 MySQL 中有一个 4GB 的数据库。我怎样才能备份它?此外,如果我需要恢复,有没有办法可以加快恢复过程?

我目前每晚都使用一项 cron 作业,要求mysqldump转储所有内容,并保留 3 天的备份。

小智 14

我们在 MySQL 中有大约 90 GB,所以这里有一些建议:

  • 您可以尝试以下调用:(mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar使用文档检查这些开关是否适合您。)
  • 如果您只使用 MYISAM 表,那么将数据库复制到另一个驱动器并对其进行 tar'ing,也可能是一种替代方法。但是,这不适用于 INNODB,因为它保留了一个附加文件。此外,您必须仔细测试。
  • 启用二进制日志,并备份它们。(这可能是我最喜欢的!)
  • 设置复制并在您的一个从站上进行备份,然后让它赶上其余的。它运行时非常好,但问题是让它运行。使用 MySQL 进行复制并不好玩。:(
  • 您的文件系统是否支持快照?如果是这样,那么这是使用它们的绝佳机会。
  • 使用商业解决方案,例如Amanda


gbj*_*anb 10

最好的方法是不中断正常操作。对于高可靠性、容错系统,您有 2 个保持同步的 DB,并备份辅助数据库。(例如这篇howtoforge文章

否则,请阅读手册:像当前一样使用 myseldump,或者使用 mysqlhotcopy 脚本(就像使用 mysqldump 一样),或者停止数据库并简单地复制 frm、MID、MYI 文件(使用 rsync)。

我认为停止+复制文件机制是最快的。