Mysql中xtrabackup备份的实现

 更新时间:2023年12月12日 09:22:28   作者:一个小宏混  
Xtrabackup是Percona团队开发的用于MySQL数据库物理热备份的开源备份工具,本文就来介绍一下Mysql中xtrabackup备份的实现,就有一定的参考价值,感兴趣的可以了解一下

1.准备环境

安装数据库

[root@localhost ~]# yum-y install mysql mysql-server
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# grep pass /var/log/mysql.log
[root@localhost ~]# mysqladmin -uroot -p'old-passwd' password "new-passwd"

email配置

[root@localhost ~]# yum -y install mailx
[root@localhost ~]# vi /etc/mail.rc #将下面信息填入到文件中
set from=********@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=**********@qq.com
set smtp-auth-password=************ #第三方登录码
set smtp-auth=login

2.脚本解析

#!/bin/bash
#校验时间
ntpdate ntp.aliyun.com >> /dev/null
#检查是否创建目录
find /xtrabackup/ -name '*' >> /dev/null
if [[ $? -ne 0 ]];then 
    mkdir /xtrabackup/
fi

find /xtrabackup/log/ -name '*' >> /dev/null
if [[ $? -ne 0 ]];then 
    mkdir -p /xtrabackup/log
fi
#定义变量
User=root
Password=QianFeng@123
Email_num=2756375538@qq.com
#完全备份
backup_full(){
    innobackupex --user=$User --password=$Password /xtrabackup/ >> /xtrabackup/log/backup.log 2>&1
}
#增量备份
backup_incremental(){
    #获取前一天时间
    before=$(date -d "yesterday" +%Y-%m-%d_%H) 
    Before_path=`find /xtrabackup/ -name "${before}*"`
    innobackupex --user=$User --password=$Password --incremental /xtrabackup/ --incremental-basedir=$Before_path >> /xtrabackup/log/backup.log 2>&1
}
#差异备份
backup_differential(){
    date_times=$(date +%u)
    if [[ $date_times -eq 4 ]];then
        before_3_days=$(date -d "3 days ago" +%Y-%m-%d_%H)
        Full_path=`find /xtrabackup/ -name "${before_3_days}*"`
        innobackupex --user=$User --password=$Password --incremental /xtrabackup --incremental-basedir=$Full_path >> /xtrabackup/log/backup.log 2>&1
    else
        before_6_days=$(date -d "6 days ago" +%Y-%m-%d_%H)
        Full_path=`find /xtrabackup/ -name "${before_3_days}*"`
        innobackupex --user=$User --password=$Password --incremental /xtrabackup --incremental-basedir=$Full_path >> /xtrabackup/log/backup.log 2>&1
    fi 
}
#定义邮件
email_worker(){
    echo "数据备份失败" | mail -s "数据库备份失败" $Email_num
}

#主函数

date_time=$(date +%u)
case $date_time in 
    1)
    backup_full
    ;;
    2|3|5|6)
    backup_incremental
    ;;
    4|7)
    backup_differential
    ;;
esac
if [[ $? -ne 0 ]];then 
    email_worker
fi 

到此这篇关于Mysql中xtrabackup备份的实现的文章就介绍到这了,更多相关Mysql xtrabackup备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 浅谈mysql数据库中的using的用法

    浅谈mysql数据库中的using的用法

    在用Join进行多表联合查询时,我们通常使用On来建立两个表的关系。其实还有一个更方便的关键字,那就是Using。
    2015-04-04
  • mysql 主从复制如何跳过报错

    mysql 主从复制如何跳过报错

    这篇文章主要介绍了mysql 主从复制如何跳过报错,帮助大家更好的理解和使用MySQL 数据库,感兴趣的朋友可以了解下
    2020-10-10
  • Windows环境下MySQL 8.0 的安装、配置与卸载

    Windows环境下MySQL 8.0 的安装、配置与卸载

    这篇文章主要介绍了Windows环境下MySQL 8.0 的安装、配置与卸载步骤,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • MySQL中查询字段为空或者为null的方法

    MySQL中查询字段为空或者为null的方法

    这篇文章主要介绍了MySQL中查询字段为空或者为null的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • mysql 修改密码和设置允许远程登录

    mysql 修改密码和设置允许远程登录

    这篇文章主要介绍了mysql 修改密码和设置允许远程登录的相关资料,需要的朋友可以参考下
    2015-07-07
  • MySQL 服务和数据库管理

    MySQL 服务和数据库管理

    今天MySQL总结一些方法和一些基础的内容,下面文章将围绕MySQL 服务与数据库管理得相关资料展开内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • MySQL数据库之事务简析

    MySQL数据库之事务简析

    这篇文章主要介绍了MySQL数据库之事务简析,MySQL数据库中的事务是一组数据库操作,它们被视为一个整体,要么全部执行成功,要么全部失败回滚,MySQL支持四种事务隔离级别,其中默认的事务隔离级别是REPEATABLE READ,需要的朋友可以参考下
    2023-09-09
  • mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解决

    mysql提示Changed limits: max_open_files: 2048 max_connections:

    这篇文章主要介绍了mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解决,需要的朋友可以参考下
    2014-05-05
  • mysql 无限级分类实现思路

    mysql 无限级分类实现思路

    关于该问题,暂时自己还没有深入研究,在网上找到几种解决方案,各有优缺点。
    2011-08-08
  • MySQL中的基本查询语句学习笔记

    MySQL中的基本查询语句学习笔记

    这篇文章主要介绍了MySQL中的基本查询语句学习笔记,包括使用limit限制查询结果条数和合并查询结果的方法,需要的朋友可以参考下
    2016-03-03

最新评论