为演示站点每30分钟恢复一次MySQL数据库和文件

时间:2013-03-01 00:12:09

标签: mysql cron backup restore

好的,我读过这篇文章:

I need to restore a database (mysql) every 30 minutes using a cron job

答案是:

mysql -u user -ppassword databasename< /path/to/dump.sql

我的问题是擦除数据库中已有的数据?我需要从存储的MySQL文件中覆盖。

然后我还需要使用cron命令用一个恢复目录覆盖一个目录中的所有文件。

这是一个joomla安装...我已经为joomla尝试了两个不同的组件来设置一个每30分钟刷新一次的演示站点,但我无法让它们中的任何一个工作。

有没有人有一个完全恢复cron命令目录的解决方案?

2 个答案:

答案 0 :(得分:0)

使用cron作业运行.sql文件可以做你想要的。要替换所有必须将表drop和creation语句添加到正在执行的文件中的数据。这将强制您希望成为数据库中唯一数据的特定数据。

答案 1 :(得分:0)

最快的方法是跳过转储/导入,只需交换目录。只要你做整个mysql数据目录,一切都会有效。除非您有主/从设置。关闭mysql并制作mysql数据目录的副本。那将是你的恢复源。然后设置一个cron来执行以下操作:

  1. 制作mysql备份目录的副本

    cp -R mysql.bak mysql.restore

  2. 停止mysql

  3. 使用恢复目录

    交换当前的mysql数据目录

    mv mysql mysql.rm mv mysql.restore mysql

  4. 启动mysql

  5. 清理刚刚交换的mysql目录

    rm mysql.rm

  6. Mysql只会停机几秒钟,具体取决于你的InnoDB表的大小。