在ubuntu上自动备份mysql


12

我有一个带有Mysql数据库的Ubuntu服务器。我想在夜间在另一台服务器(例如,ovh)上设置此数据库的自动备份。

我不知道什么是最好的工具。如果有人有什么建议...

提前致谢。

Answers:


29

自动执行此任务的最简单方法是将MySQL Dumps和cronjob结合使用。您可以在此站点和其他Internet站点上找到有关此主题的很多信息,但是为了完整起见:

创建一个mysqldump.sh文件

其中将包含我们将在cron作业中计划的mysql dump命令(替换用户,密码和路径以匹配您的环境):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

编辑:如果您希望脚本将备份存储在远程位置,只需挂载相应的设备或共享并使用脚本中的挂载路径。

测试脚本

确保脚本具有执行权限:

chmod +x /path/to/mysqldump.sh

执行脚本:

sh /path/to/mysqldump.sh

并测试它是否正常工作(备份文件将在指定的备份文件夹中创建)。

创建并安排新的Cron作业

在命令提示符下键入

sudo crontab -e

并在文件底部添加以下行:

30 23 * * * /path/to/mysqldump.sh

这将每天23:30执行脚本。

扩展这个简单的脚本

实际上,您可以做很多事情来改进这种简单的备份方法:

  • 备份到另一个系统
  • 监控磁盘空间
  • 电子邮件报告
  • ...

所以不要在这里结束并尝试!:-)

使用备份工具或基于云的备份服务

尽管上述方法是最简单的方法之一,并且可以扩展以适合您的特定需求,但是值得一提的是,还有其他替代方法:

  • 备份工具,例如AutoMySQLBackup,这是一个开源应用程序,可以简化配置备份的电子邮件通知,压缩,加密,循环和类型(例如增量)的过程。至于Mai 2018,可通过APT在Ubuntu Server上使用。
  • 如果您管理多个数据库服务器并希望集中管理所有备份,则基于云的备份服务(例如BackupBird,myRepono,Bitcan等)可能会很有趣。

请切记,我与上述任何解决方案和服务都没有任何关系,我列出这些信息仅供参考,因此使用它们的风险自负。

有用的链接/参考:

Cron-> https://en.wikipedia.org/wiki/Cron

MySQL转储-> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


4
使用date +%F-会自动选择适合用户所在地区的Year + month + date的组合(例如,我会得到YYYY-MM-DD)。
muru

哦,是的,更好。我将编辑答案:-)
EduardoLópez15年

+1好的答案:这里到底有什么需要,不多也不少。
2015年

2
如果您必须使用sudo来执行此操作(a),sudo crontab -e并且不要忘记使脚本可执行:chmod +x /path/to/mysqldump.sh
zinon

zinon-感谢您的提示!我更新了答案。
爱德华多·洛佩斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.