mysql备份策略(包括mysql备份脚本,crontab定时任务的完整备份策略)

1. 策略

  • 要备份的库

iot 和 analytics 库

  • 每日备份

每天23:00备份一次

  • 每小时临时备份

每个小时临时备份一次,每天凌晨删除一天之前的备份

2. 操作

2.1 文件准备

  • data目录下准备mysql_dump目录,用于备份
  • data/mysql_dump目录下 创建hour_tmp目录存放每日临时备份文件
  • data/mysql_dump目录下 创建mysql_dump.sh脚本(备份脚本)

2.2 备份脚本

#!/bin/bash
#####定义变量#######
date_now=`date +%Y%m%d%H%M`
dump_dir=$1
mysql_user="root"
mysql_ip="127.0.0.1"
mysql_port=3306
mysql_passwd="liubei@161"
####### 定义要备份库库 #################
#要备份的库名一行一个
back_dbs=(
iot
analytics
)
#######开始备份##########
cd ${dump_dir}
### 备份各库##
for back_db in ${back_dbs[@]};
do
mysqldump -h${mysql_ip} -P${mysql_port} -u${mysql_user} -p${mysql_passwd} -l -F ${back_db} > ./${back_db}.sql
tar czf ${back_db}-${date_now}.tar.gz ${back_db}.sql --remove-files
done

2.3 定时任务

策略:
1)每日备份到 /data/mysql_dump,保留15天
2)每小时备份到 /data/mysql_dump/hour_tmp,每天凌晨清空

###########################
# mysql备份相关 #
###########################
#每小时临时备份
30 * * * * /bin/bash /data/mysql_dump/mysql_dump.sh /data/mysql_dump/hour_tmp > /dev/null 2&>1
#每日备份
00 23 * * * /bin/bash /data/mysql_dump/mysql_dump.sh /data/mysql_dump > /dev/null 2&>1
#每天删除按小时临时备份的文件
10 01 * * * /bin/find /data/mysql_dump/hour_tmp -name \*.tar.gz -mtime +1| xargs -I {} rm -rf {}
#保留15天备份
05 01 * * * /bin/find /data/mysql_dump -maxdepth 1 -name \*.tar.gz -mtime +15| xargs -I {} rm -rf {}

在这里插入图片描述

posted on   运维开发玄德公  阅读(31)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示