【问题标题】:Backing up a huge MySQL table using PHP and a cronjob使用 PHP 和 cronjob 备份一个巨大的 MySQL 表
【发布时间】:2010-09-22 18:15:02
【问题描述】:

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

我们遇到的问题是两张桌子的大小。他们每个人都有 60k 个字段并且每天都在增长。我认为增量备份是备份的最佳解决方案,但如果要恢复它......这将是一个巨大的项目。

我的问题是两个部分:

a) 有没有更直接的方法来每天备份大表,如果没有,

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

谢谢!

【问题讨论】:

    标签: php mysql backup cron


    【解决方案1】:

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

    恢复数据库从来都不是一件有趣的事,所以无论如何这将是一个大项目。

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

    让我知道这是否适合你。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-11-05
          • 2016-01-09
          • 2017-11-27
          • 2011-09-20
          • 2012-07-15
          • 2020-03-03
          • 1970-01-01
          • 1970-01-01
          • 2012-11-19
          相关资源
          最近更新 更多