shell笔记:定时自动备份mysql数据库并上传到oss

上周,我们在写一些清理数据的脚本时,由于不同开发人员的脚本执行顺序没有详细对接,导致有一张表的某个字段丢失了一天的数据,虽然后来费了好大精力想办法弥补回来,但类似的情况最好还是杜绝,至少需要一个自动备份数据库的工具。

需求分析

导致数据丢失的原因有很多,员工操作失误,服务器硬盘挂了(机房烧了),服务器被人黑了然后篡改数据库了,甚至是员工删库跑路了,都是有可能的。

那我们需要把数据库备份到一个大概率不会发送这些情况的地方,比如阿里云的oss上。

这个傻瓜式的备份工具至少应该具备以下功能:

  1. 定时备份数据库;
  2. 压缩打包后上传到oss,删除本地压缩包;
  3. 删除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中去恢复。

这部分内容需付费后浏览.

方法2:直接导入tar.gz压缩包到mysql
这部分内容需付费后浏览.

参考文章

shell笔记:定时自动备份mysql数据库并上传到oss

原文链接:https://beltxman.com/3251.html,若无特殊说明本站内容为行星带原创,未经同意禁止转载!

更多精彩,敬请关注本博微信公众号:hsu1943

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll to top