需求分析
导致数据丢失的原因有很多,员工操作失误,服务器硬盘挂了(机房烧了),服务器被人黑了然后篡改数据库了,甚至是员工删库跑路了,都是有可能的。 那我们需要把数据库备份到一个大概率不会发送这些情况的地方,比如阿里云的oss 上。
这个傻瓜式的备份工具至少应该具备以下功能:
- 定时备份数据库;
- 压缩打包后上传到
oss,删除本地压缩包; - 删除
OSS上超出指定时效的备份(避免产生不必要费用);
oss工具ossutil
为了操作oss 我们需要用到 oss 官方提供的工具 ossutil ;并给它执行权限,创建软连接。
wget http://gosspublic.alicdn.com/ossutil/1.6.19/ossutil64
cp ossutil64 /opt/tools/
chmod 755 /opt/tools/ossutil64
sudo ln -s /opt/tools/ossutil64 /usr/local/bin/ossutil64
知识点
- mysqldump命令中如何排除不需要的表,或者指定备份哪些表
- oss工具ossutil64的基本用法
- shell中如何生成随机字符串
- shell中如何获取几天前的时间
- shell中如何定义数组并进行循环
开箱即用的shell脚本
sh 文件 /opt/tools/shell/mysql_backup_test.sh 中。
定时执行
使用crontab 配置每天凌晨3点15分执行备份:
15 3 * * * /opt/tools/shell/mysql_backup_test.sh >> /opt/tools/shell/mysql_backup_test.log 2>&1
使用备份包恢复数据库
方法1:解压tar.gz 压缩包得到 sql 文件,然后在 mysql 中去恢复。
部分内容需付费后查看
tar.gz 压缩包到 mysql
部分内容需付费后查看