使用PHP和cronjob备份一个巨大的MySQL表

时间:2008-11-17 21:39:27

标签: php mysql backup cron

我正在开发我们数据库的常规转储。我正在使用this script创建备份,然后通过常规的cron作业提供备份。最后,我们最终得到了一个文本文件以及所有内容的电子邮件存档。

我们遇到的问题是两个表的大小。它们每个都有6万个田地,每天都在种植。我认为增量备份是备份的最佳解决方案,但如果要恢复它......这将是一个巨大的项目。

我的问题是两个人:

a)是否有更直接的方式每天备份大表,如果没有,

b)是否有一种简单的方法可以从每日/每周增量备份中恢复备份?

谢谢!

3 个答案:

答案 0 :(得分:9)

您可以查看Maatkit。这是一堆perl脚本。其中一个是mk-parallel-dump,它产生mysqldump的多个副本(默认情况下,机器中每个CPU 1个),允许转储更快地进入 MUCH 。你也可以在一个cron工作中设置它,就像Daniel建议的那样。

答案 1 :(得分:6)

您可以使用crob作业执行mysqldump以转储要备份的表。然后只需在该文件上使用差异备份进行每日备份,并每周进行一次完整备份。备份的繁重工作应由您选择的备份引擎完成。

恢复数据库永远不会有趣,所以无论它是一个大项目。

http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

请告诉我这是否适合您。

答案 2 :(得分:0)

考虑使用LVM快照定期获取数据源的快照,然后在捕捉的副本上使用maatkit以存储SQL转储。在从属MySQL数据库上执行此操作,以便备份不会导致实时平台出现性能问题。