Linux中mysql数据库的自动备份策略

思路:
挂载云数据盘用来做数据备份;
编写shell脚本备份数据到数据盘,并删除历史备份文件;
利用crontab建立计划任务,执行上述脚本;

1.挂载云数据盘

#查看数据盘信息,比如数据盘是/dev/vdb
fdisk -l
#对数据盘分区
fdisk /dev/vdb 
#按照界面的提示,依次输入“n”(新建分区)、“p”(新建主分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“wq”(保存分区表),回车开始分区。
#格式化分区为ext3格式
mkfs.ext3 /dev/xvdb1
#创建备份目录
mkdir /home/backup
#挂载目录
mount /dev/vdb1 /home/backup

2.编写shell脚本备份数据到数据盘,并删除历史备份文件

  • 备份数据到数据盘
    cd /home/backup
    vi bkDatabaseName.sh

#!/bin/bash
nowHour=$(date +%H)
if [ $nowHour -gt 6 ] && [ $nowHour -lt 23 ]
then
mysqldump -uroot -pdatabasePwd bkDatabaseName1 > /home/backup/db_bk/bkDatabaseName1_$(date +%Y%m%d_%H%M%S).sql
sleep 1m
mysqldump -uroot -pdatabasePwd bkDatabaseName2 > /home/backup/db_bk/bkDatabaseName2_$(date +%Y%m%d_%H%M%S).sql
fi

chmod u+x bkDatabaseName.sh
#测试
sh bkDatabaseName.sh

  • 删除历史备份文件

    vi bk_rm.sh

    #!/bin/bash
    #7天前日期
    delDate=`date +%Y%m%d  -d “-7 days”`
    #echo $delDate
    #查询并删除7天前备份数据
    find /home/backup/db_bk -name “*${delDate}*” -exec rm {} \;

    3.计划任务

crontab -e

#每天7-23点每小时备份一次数据库
* 7-23/1 * * * /home/backup/db_bk/shell/bkDatabaseName.sh
#每天0点删除历史备份
* 0 */1 * * /home/backup/db_bk/shell/bk_rm.sh

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值