2013-03-01 59 views
0

好,我看到这篇文章:恢复MySQL数据库和文件每30分钟为一个演示网站

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

和答案是:

的mysql -u用户-p password当数据库名称< /路径/to/dump.sql

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

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

这是一个Joomla安装...我曾尝试为Joomla设置一个演示网站,刷新每30分钟2个不同的组成部分,但我不能让任何一方的工作。

没有人有解决方案,将完全恢复cron命令上的目录?

回答

0

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

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

Mysql的只会是向下和不可用了几秒钟,这取决于大小你的InnoDB表。

+0

我不想做手工......它需要是自动的。 – user1951915 2013-03-01 08:37:14

+0

你正确的shell脚本来完成所有的步骤,就像你会为进口。设置cron来运行该脚本每隔30分钟。 – 2013-03-01 16:49:48