我目前正试图find一种方法来自动将dump.sql文件恢复到每周另一台服务器。 我还没有find代码来做到这一点,但在MySQL或命令提示符,但我期待。 我能看到的主要问题是,服务器每天为每个数据库创build两个数据库备份,并且名称每天更改,因为我们将名称存储在date中。
是否有可能设置一些代码,每个数据库一个月恢复一次最新的文件?
我已经做了大量的研究,但是我一直在寻找关于如何创build转储文件的指南,或者如何将一个转储file upload到新的数据库,但是在这个上找不到任何东西。
基本上我会做的是写一个bash脚本 ,每天/一周/月运行一次。
这是一些逻辑(我会这样做)
在备份所在的目录中,您可以通过编辑UNIQUEPARTHERE来获取所需的每个备份的最新版本
ls -lthr | grep UNIQUEPARTHERE | tail -1 | cut -f9 -d ' '
例如:
$FILE = ls -lthr | grep DATABASE_BACKUP1 | tail -1 | cut -f9 -d ' '
以上命令将显示文件名中包含DATABASE_BACKUP1的任何文件的最新备份。
之后,它只是在删除服务器上运行一个mysql命令:
mysql --user=mysql_username --password=your_password remote_database_name < $FILE --host=IP_OF_REMOTE_SERVER_GOES_HERE
当然,这是一个粗略的想法,我将如何处理它,基于你使用bash的假设,备份是使用mysqldump创build的;)
祝你好运 :)
您可以尝试SQLyog的 SQL调度程序和报告工具,它允许您安排查询的执行。 它有一个工作代理 ,允许您生成,格式化和发送个性化的邮件与查询返回的结果。 你可以指定一个外部文件(在你的情况下是dump.sql),或者input你想用这个工具执行的查询。 如果您需要按照一定的时间表自动启动作业,则可以使用Windows计划程序保存和计划作业 。
bash文件是好主意
另一种方法是将备份到特定目录导出数据库:
mysql> mysqldump -h主机名-u用户名-p数据库名> backup_db.sql
我把它放到我的web服务器目录,并可以访问http://xxxxx/backup_db.sql
到另一台服务器
只需使用wget http://xxxxx/backup_db.sql并导入到db通过
mysql> source /home/om/Download/dbname.sql
你可以把整个过程自动化成crontab
如果你使用的是unix / linux:
您可以使用CRON执行计划任务(您的案例中每周)
然后使用CRON使用的脚本中的mysql命令行将数据库导入到另一台服务器。
确定最新的文件