【问题标题】:Best way to implement offsite backup php / mysql实现异地备份php/mysql的最佳方式
【发布时间】:2014-02-04 14:20:43
【问题描述】:

寻找一些关于在我的 php 应用程序中实现数据异地备份的最佳方式/可能性的建议。

所以我们有一个在客户端本地站点上运行的 PHP 应用程序,它每晚将 MySQL 数据转储到 datefile.sql。将其移至外部服务器的最佳方法是什么。

我们托管了一个服务器,目前我们每天早上手动将 FTP 文件传输到该服务器。我们如何最好地实现自动化,我们是否需要在 FTP 凭据中硬编码,如果我们有多个客户端,我们如何将其分离出来,这样就不需要硬编码的凭据。

理想的情况是在外部服务器上运行 MySQL 实例,本地客户端服务器将数据即时复制到该服务器上,并在需要时返回。甚至不确定这可能吗?

如果需要,很乐意尝试并进一步解释。

谢谢,

有什么想法吗?

【问题讨论】:

    标签: php mysql ftp database-replication


    【解决方案1】:

    您可以创建一个在您的服务器上运行的 bash 脚本,该脚本在晚上由 cron 调用,该脚本使用 rsync 从客户端服务器获取 sql 文件(如果您与它们有 ssh 连接),然后自行恢复它机器。

    【讨论】:

    • 如果我想在两者之间实时同步来回和第四怎么办?如果用户 IP 发生变化,我将无法通过 SSH 连接到客户端框,我的服务器 IP 不会更改,因此更可取的是客户端本地框“工作”。感谢您的回复。这对我来说是全新的,只是想在我开始之前知道可能性。谢谢
    • 在这种情况下,您可以创建一个客户端需要从其 crontab 调用的 bash 脚本。然后将使用 rsync ssh 到您的(静态)ip。传输完成后,再次 ssh 到您的计算机以调用恢复 sql 转储的 bashscript。确保客户端只能执行 bash 脚本而不是读取它,因为您将在那里硬编码您的数据库凭据。另请记住,客户端将希望在没有密码的情况下登录到您的 ssh (linuxproblem.org/art_9.html),否则 bash 脚本将挂在密码提示符上
    【解决方案2】:

    您可以使用 cron 来实现这一点。只需创建一个 cronjob 并安排它在需要时运行。对于所有文件传输的麻烦,您可以使用 rsync(它还提供了仅传输不同数据等的方法)。

    另外,我认为 MySQL 具有用于复制和备份的内置功能,但我不确定这一点或如何配置它..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      相关资源
      最近更新 更多