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 2022-07-26 20:36  运维开发玄德公  阅读(23)  评论(0编辑  收藏  举报  来源

导航