好的,我读过这篇文章:
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命令目录的解决方案?
答案 0 :(得分:0)
使用cron作业运行.sql
文件可以做你想要的。要替换所有必须将表drop和creation语句添加到正在执行的文件中的数据。这将强制您希望成为数据库中唯一数据的特定数据。
答案 1 :(得分:0)
最快的方法是跳过转储/导入,只需交换目录。只要你做整个mysql数据目录,一切都会有效。除非您有主/从设置。关闭mysql并制作mysql数据目录的副本。那将是你的恢复源。然后设置一个cron来执行以下操作:
制作mysql备份目录的副本
cp -R mysql.bak mysql.restore
停止mysql
使用恢复目录
交换当前的mysql数据目录mv mysql mysql.rm mv mysql.restore mysql
启动mysql
清理刚刚交换的mysql目录
rm mysql.rm
Mysql只会停机几秒钟,具体取决于你的InnoDB表的大小。