Linux下定期备份数据库
emmm最近某个项目数据库被绑架的事实还缠绕在脑里,从此注重数据库以及服务器这方面的容灾能力,其中对于数据库而言,备份比较重要
使用docker备份数据库
1 | docker exec -it <containerId> mysqldump -u<username> -p<password> -h<host> --tables<databaseName> > /path/to/save/your/backup |
上面就是docker下的对远程某个mysql进行数据库备份。最后 > 右边的地址是要存放备份文件的地址。
使用mysql命令备份数据库
1 | mysqldump -u<username> -p<password> -h<host> --tables<databaseName> > /path/as/same |
跟docker上面的差不多,就是直接使用mysqldump
我在某篇文章的评论中看到,用mysqldump会被经理骂?然后网上找了下有个mysqlhotcopy工具,这篇文章说mysqlhotcopy的优点就是快,缺点就是只支持MyISAM,然后想了想,项目数据库不使用MyISAM存储引擎,所以就没用mysqlhotcopy来进行备份。
创建定时任务
编写定时任务
1 | mkdir backup |
创建一个文件夹保存备份文件以及定时任务需要执行的shell文件(这里放在/home下)
1 | cd backup/ |
进入文件夹,使用vim编辑shell文件,如下
1 | !/bin/bash |
利用crontab创建定时任务
定时任务使用Linux下的crontab模块,稍微配置一下就可以了
- 创建
1 | crontab -e |
- 添加定时任务
在上面图片末尾添加0 23 Sun /home/backup/backup.sh,这里使用了crontab表达式,后面紧接着要执行的命令,当然最后是一个shell文件,里面是一个个命令集。
然后就等待他吧
若想删除掉定时任务只需要
1 | crontab -r |