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

4
我正在开发一个定期数据库备份。我使用这个脚本创建备份,然后通过常规的cron作业进行处理。最终我们得到了一个文本文件和一封包含所有内容的电子邮件存档。
我们遇到的问题是两个表的大小。它们每个都有60,000个字段并且每天都在增长。我认为增量备份是备份的最佳解决方案,但如果需要还原备份...那将是一个巨大的项目。
我的问题有两个部分:
a) 有没有更简单的方法来每日备份大表?如果没有,
b) 是否有一种简单的方法从每日/每周增量备份中恢复备份?
谢谢!
3个回答

9

您可以查看Maatkit。这是一组Perl脚本,其中之一是mk-parallel-dump,它会生成多个mysqldump的副本(默认情况下,每台机器上的CPU为1),从而使转储速度更快。您也可以像Daniel建议的那样在cron作业中设置此操作。


6
你可以使用 cron job 来执行 mysqldump,将需要备份的表进行转储。然后,每天对该文件使用差异备份,每周进行一次完全备份。备份的重活应由您选择的备份引擎完成。
恢复数据库从来都不是一件有趣的事情,因此无论如何,这都是一个大项目。

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

如果这对您有用,请告诉我。


0

考虑使用LVM快照对数据源进行定期快照,然后在快照副本上使用maatkit来存储SQL转储。在从属MySQL数据库上执行此操作,以便您的备份不会影响您的实时平台性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接