0

好的,我读了这篇文章:

我需要使用 cron 作业每 30 分钟恢复一次数据库(mysql)

答案是:

mysql -u 用户 -ppassword 数据库名 < /path/to/dump.sql

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

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

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

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

4

2 回答 2

0

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

  1. 复制mysql备份目录

    cp -R mysql.bak mysql.restore

  2. 停止mysql

  3. 将当前mysql数据目录与restore目录交换

    mv mysql mysql.rm mv mysql.restore mysql

  4. 启动mysql

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

    rm mysql.rm

根据 InnoDB 表的大小,Mysql 只会在几秒钟内关闭并且无法使用。

于 2013-03-01T03:02:07.730 回答
0

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

于 2013-03-01T00:30:48.640 回答