xtrabackup 备份脚本
说明
转载请注明出处说明
一、数据库权限
- 数据库备份账号 对于完全备份使用必需的最小特权。
CREATE USER 'xtrabackup'@'localhost' IDENTIFIED BY 'aka123456';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO'xtrabackup'@'localhost';
二、脚本内容
- 使用条件:1、设置 MainDir 备份目录与 AUTH 数据库账号密码即可
# 复制黏贴即可
cat <<'EOF'> /var/spool/cron/root
#!/bin/bash
####################################
####### 作者: Akiraka #######
####### 网址: www.akiraka.net #######
####################################
# 主目录
MainDir="/backup/"
# 日志目录
LogsDir="${MainDir}`date +%F`/logs/"
# 全库备份的目录
FullDir="${MainDir}`date +%F`/full/"
# 增量备份的目录
IncrDir="${MainDir}`date +%F`/incr-`date +%H`"
# 时间格式为2017-06-22-12:13:14
DATE=`date +%Y-%m-%d-%H:%M:%S`
# 用户名密码
AUTH="--user=xtrabackup --password=aka123456"
# 清理历史备份天数,默认清理7天前备份
CleanDay="7"
# 检查目录是否存在,不存在则创建
[ -d ${LogsDir} ] || mkdir -p ${LogsDir} && echo "${DATE} 创建日志目录成功" >> ${LogsDir}/info.log
[ -d ${FullDir} ] || mkdir -p ${FullDir} && echo "${DATE} 创建全备目录成功" >> ${LogsDir}/info.log
[ -d ${IncrDir} ] || mkdir -p ${IncrDir} && echo "${DATE} 创建增备目录成功" >> ${LogsDir}/info.log
# 全量备份
function Full() {
innobackupex --defaults-file=/etc/my.cnf ${AUTH} --no-timestamp ${FullDir} &>> ${LogsDir}/full.log
echo "${DATE} 全量备份成功" >> ${LogsDir}/full.log
}
# 增量备份
function Incr() {
innobackupex --defaults-file=/etc/my.cnf ${AUTH} --no-timestamp --incremental-basedir ${FullDir} --incremental ${IncrDir} &>> ${LogsDir}/incr.log
echo "${DATE} 增量备份成功" >> ${LogsDir}/incr.log
}
# 清理备份
function Clean() {
find ${MainDir} -maxdepth 1 -name `date +"%Y-%m-%d" -d "-${CleanDay} day"` -exec rm -rf {} \;
echo "${DATE} 清理历史成功" >> ${LogsDir}/clean.log
}
# 判断传参
if [ ${1} == "full" ];then
Full
elif [ ${1} == "incr" ];then
Incr
elif [ ${1} == "clean" ];then
Clean
else
echo "${DATE} 参数输入错误,请重新输入"
fi
EOF
三、创建定时任务
cat <<'EOF'> /var/spool/cron/root
# 每天12点01分进行全量备份
1 0 * * * bash /data/backup_mysql full > /dev/null 2>&1
# 每天12点01分清理历史备份
1 0 * * * bash /data/backup_mysql clean > /dev/null 2>&1
# 每45分增量备份一次
*/45 * * * * bash /data/backup_mysql incr > /dev/null 2>&1
EOF
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/linux/1132.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
xtrabackup 备份脚本
说明
转载请注明出处说明
一、数据库权限
数据库备份账号 对于完全备份使用必需的最小特权。
CREATE USER 'xtrabackup'@'localhost' ……
文章目录
关闭
共有 0 条评论