首页 > 解决方案 > 如何在没有 cron 的情况下自动化数据库表备份

问题描述

所以我有一个 web 应用程序,每个月都应该备份一个 MYSQL 数据库表以用于历史目的。表名将是它的名称,然后是当前年份,以及它应该代表的月份,如table_201811ortable_201901等​​,你明白了。

我没有 SSH 访问权限,所以没有经典的 cron 工作可能性。

我认为,一种方法是,由于 PHP 并非一直运行,因此在每次页面加载时,我会:

现在,这并没有什么问题,我认为,但是,每个人都可以看到这不是一个最佳解决方案,因为至少涉及 2 个 MYSQL 请求。

我该如何改进这个过程?还有另一种更好的方法吗?

编辑: 实现这一目标的一种可能方法,尽管不是最优雅的方法:

对此有什么想法吗?

编辑2

所以最后我采用了上述概念,除了我使用数据库来存储下一个备份日期,因为据我所知,通过 PHP读取/写入文件比访问数据库要慢。有人会对此提出异议,因为数据库文件也是物理上位于硬盘上的普通文件,但无论如何。这解决了。

标签: phpmysqldatabase-backups

解决方案


从没有 SSH 访问权限的角度推断,其他人正在为您进行托管?要求他们按照您的意愿执行备份脚本,并将其放入 crontab。

他们希望已经有某种备份系统在运行,如果没有,请考虑尽快切换到其他地方。

此外,(暂时戴上我的操作帽子)如果您要将每月数据的完整副本累积到数据库中,他们肯定会感兴趣。出于这个原因,最好先咨询他们。


推荐阅读