#!/bin/bash
# Name: xtra_back_mysql.sh
# Desc:该脚本使用xtrabackup工具对mysql数据库进行增量备份,根据自己需求可以自行修改
# Usage:./xtra_back_mysql.sh
# Author: Ghost
# Update: 2018-08-05

# 备份策略:周3、周5、周日全备,周1,周2,周4,周6增备

#变量定义
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
conf_file= $basedir/my.cnf
xtra_full_dir = /mydb3307/back_full
xtra_increment_dir = /mydb3307/back_increment
xtr_full_log = /mydb3307/log/full_`$date '+%F %T'`.log
xtr_increment_log = /mydb3307/log/increment_`$date '+%F %T'`.log

#全量备份
full_back()
{
#备份
/usr/bin/innobackupex --user=admin --password=123 $xtra_full_dir &> $xtr_full_log
full_name=$(ls -d $xtra_full_dir/$(date +%F)_*)
echo $full_name > $xtra_full_dir/full.txt

#应用日志
echo "++++++++++++++++++++++++我是分割符++++++++++++++++++++++++++" >> $xtr_full_log
/usr/bin/innobackupex --apply-log --redo-only $full_name &>> $xtr_full_log

}

#增量备份1
increment1_back()
{
#备份
full_name=`cat $xtra_full_dir/full.txt`
/usr/bin/innobackupex --user=admin --password=123 --incremental $xtra_increment_dir --incremental-basedir=$full_name &> $xtr_increment_log

increment1_dir=$(ls -d $xtra_increment_dir/$(date +%F)_*)
echo $increment1_dir > $xtra_increment_dir/increment1.txt

#应用日志
echo "++++++++++++++++++++++++我是分割符++++++++++++++++++++++++++" >> $xtr_increment_log

/usr/bin/innobackupex --apply-log --redo-only $full_name --incremental_dir=$increment1_dir &>> $xtr_increment_log

}

#增量备份2
increment2_back()
{
#备份
full_name=`cat $xtra_full_dir/full.txt`
increment1_dir=`cat $xtra_increment_dir/increment1.txt`

/usr/bin/innobackupex --user=admin --password=123 --incremental $xtra_increment_dir --incremental-basedir=$increment1_dir &> $xtr_increment_log

increment2_dir=$(ls -d $xtra_increment_dir/$(date +%F)_*)
echo $increment2_dir > $xtra_increment_dir/increment2.txt

#应用日志
echo "+++++++++++++++++++++我是分割符++++++++++++++++" >> $xtr_increment_log

/usr/bin/innobackupex --apply-log $full_name --incremental_dir=$increment2_dir &>> $xtr_increment_log

}

system_time=`date +%A`
if [ '$system_time' = 'Sunday' -o '$system_time' = 'Wednesday' -o '$system_time' = 'Friday' ];then
full_back && find $xtra_full_dir -daystart -type d -mtime +1 -exec rm -rf {} \; 2>/dev/null
sleep 86400
elif [ '$system_time' = 'Thursday' -o '$system_time' = 'Saturday' -o '$system_time' = 'Monday'];then
increment1_back && find $xtra_increment_dir -type d -mtime +1 -exec rm -rf {} \; 2>/dev/null
sleep 86400
else
increment2_back
sleep 86400
fi

shell_xtrabackup_backup_mysql的更多相关文章

随机推荐

  1. 基于图灵api的Python机器人

    一.注册图灵机器人 先注册并登录图灵机器人官网: 点击创建机器人 复制机器人的key 二.搭建Python机器人 Python版本:3.6 注意替换第三行代码的apikey import reques ...

  2. Java 使用控制台操作实现数据库的增删改查

    使用控制台进行数据库增删改查操作,首先创建一个Java Bean类,实现基础数据的构造,Get,Set方法的实现,减少代码重复性. 基本属性为 学生学号 Id, 学生姓名 Name,学生性别 Sex, ...

  3. Mybatis核心类生命周期和管理

    Mybatis核心类生命周期和管理 原文链接:https://blog.csdn.net/qq1134550437/article/details/51960480 1.SqlSessionFacto ...

  4. OpenMP笔记(三)

    个人博客地址:http://www.bearoom.xyz/2019/02/21/openmp3/ 这一部分主要记录一些指令的使用. 一.parallel的使用 parallel是用于构造并行块的,也 ...

  5. sklearn 模型评估

    原文链接 http://d0evi1.com/sklearn/model_evaluation/ 预测值:pred 真实值:y_test #### 直接用平均值 ``` mean(pred == y_ ...

  6. 基于基因调控网络(Hopfield network)构建沃丁顿表观遗传景观

    基因调控网络的概念在之前已经简要介绍过:https://www.cnblogs.com/pear-linzhu/p/12313951.html 沃丁顿表观遗传景观(The Waddington's e ...

  7. 纯css隔行显示不同颜色

    通过:nth-child(even) 属性来设置背景色可以使table表格偶数行显示不同颜色::nth-child(odd)设置背景色可以使table表格奇数行显示不同颜色:

  8. Java之线程通信的方法

    /** * 线程通信的例子:使用两个线程打印 1-100.线程1, 线程2 交替打印 * * 涉及到的三个方法: * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器. * no ...

  9. Python入门方法推荐,哪些基础知识必学?

    很多想入门的小伙伴还不知道Python应该怎么学,哪些知识必学,今天我们就来盘点一下. 01.入门方法推荐 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所 ...

  10. Java 开发者必须了解的 16 个Java 顶级开源项目!

    本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb/JavaGuide ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核 ...