我如何才能每天定期将数据从一个数据库导出到另一个数据库(在同一台服务器上)?

我如何才能每天定期将数据从一个数据库导出到另一个数据库(在同一台服务器上)?

运行测试版网站(与实时网站不同的平台)。

已经通过 php 脚本实现了导出/导入过程。自动从一个数据库获取数据并导出到另一个数据库。

我希望自动运行此传输(至少每天一次),以使用实时站点的内容更新测试站点。

我的最简单的选择是什么(除了手动运行脚本)?

我正在考虑:

  1. 在脚本中写入附加功能以跟踪上次运行的时间或根据设置的服务器时间戳运行的时间

  2. 编写附加功能来检查数据库中是否有新数据/更新数据(不知道是否可行)

  3. ??????

此外,也许这更适合不同的网站(不是serverfault),请告诉我。

答案1

您应该能够使用一个简单的 cronjob 来完成此操作,该 cronjob 从第一个执行 sqldump,然后执行 sqlimport 并重新启动第二个 SQL 实例(如果需要......)

就我个人而言,我喜欢在我的 cronjobs 中添加“logger”语句来记录一个步骤的开始和另一个步骤的结束,这样我就可以跟踪事情花费的时间。

答案2

你好,丹!

Cron 是最佳选择。如果您有服务器的 ssh 访问权限,则可以执行以下操作:

sudo crontab -e

要打开 cron 选项卡...您只需添加一行显示要执行的脚本/命令:

1 1 * * * php /path/to/script.php

Cron 基于以下条件执行:

minute, , day of month, month, day of week 

所以,1 1 * * *= 每周每月每天第一小时的第一分钟

* 是通配符。

您需要运行 PHP 命令行界面才能执行此操作。另一种方法是编写一个 bash / shell 脚本,从命令行执行传输。但是,如果您已经有了 PHP 脚本,我建议继续使用它并使用 cron 调用它。

答案3

您可能将其用于mysqlbackup将 DB 内容转储到 sql 文件中。

只需解析该文件即可使用 mysql 超级用户(通常称为 root)导入该文件。

这其中不涉及 PHP...

相关内容