#!/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. Codeforces Round #604 (Div. 2) 部分题解

    链接:http://codeforces.com/contest/1265 A. Beautiful String A string is called beautiful if no two con ...

  2. 可重入排他锁ReentrantLock源码浅析

    1.引子 "ReentrantLock"单词中的“Reentrant”就是“重入”的意思,正如其名,ReentrantLock是一个支持重入的排他锁,即同一个线程中可以多次获得同步 ...

  3. Mybatis基本配置(一)

    1. Mybatis介绍 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用 ...

  4. vue/cli创建项目过程

            ①vue create demo    vue版本:3.9.3,node版本:12.8.0         ②Manually select features         ③Bab ...

  5. VMware CentOS 设置IP地址

    VMware CentOS 设置IP地址 1. 设置虚拟机网络编辑器:参考:https://www.cnblogs.com/1285026182YUAN/p/10440443.html 2. Cent ...

  6. 吴裕雄--天生自然MySQL学习笔记:MySQL NULL 值处理

    MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了三大运算符 ...

  7. PAT-树-DFS-BFS相关问题解决方案整理

    如何建树? 二叉树-建树-方式一 dfs使用root左右指针建立树节点关系,返回根节点root 二叉树-建树-方式二 dfs使用二维数组,int nds[n][2],如:nds[i][0]表示i节点的 ...

  8. Linux(CENTOS7) RabbitMq安装

    RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  9. JAVA内存分配-通俗讲解

    Java的内存分配上,主要分4个块: 一块是用来装代码的,就是编译的东西. 一块是用来装静态变量的,例如用static关键字的变量,例如字符串常量. 一块是stack,也就是栈,是用来装变量和引用类型 ...

  10. mybatis-关于<update>的日常记录

    !注意:,一定要有 <update id="updateByPrimaryKeySelective" parameterType="com.dhht.model.o ...