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数据库修改密码以及设置密码永过期问题

    MySQL数据库修改密码以及设置密码永过期问题

    这篇文章主要介绍了MySQL数据库修改密码以及设置密码永过期问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • mysql 8.0.11安装教程图文解说

    mysql 8.0.11安装教程图文解说

    本文通过图文并茂的形式给大家介绍了mysql 8.0.11安装教程,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-04-04
  • MySQL中Set与Enum的区别和使用详解

    MySQL中Set与Enum的区别和使用详解

    这篇文章主要介绍了MySQL中Set与Enum的区别和使用详解,数据库中的 set 是一种集合数据类型,用于存储不同的元素,每个元素只能出现一次,Set 的主要作用是方便进行集合运算,如并集、交集等操作,需要的朋友可以参考下
    2024-01-01
  • MySQL COUNT函数的使用与优化

    MySQL COUNT函数的使用与优化

    优化COUNT函数的查询在 MySQL 中最容易被误解的话题中能够排进前10名,我们可以在网上搜索了解更多关于 COUNT 优化的误解信息。在进行优化前,理解 COUNT 到底做了什么很重要。
    2021-05-05
  • MySQL如何配置my.ini文件

    MySQL如何配置my.ini文件

    文章介绍了如何修改my.ini文件以解决数据库忘记密码或其他基础问题,首先,需要停止数据库服务,然后创建并编辑my.ini文件,设置数据库字符集、缓冲池大小等参数,接着,删除旧的data文件夹并重新生成,配置my.ini文件时要注意命名规范
    2025-01-01
  • MySQL登录报错排查:1045、2003错误问题及解决

    MySQL登录报错排查:1045、2003错误问题及解决

    本文详细介绍了MySQL常见报错1145拒绝访问和213无法连接的解决方法,从错误原因出发,通过确认账号密码、重置密码、授权远程访问等步骤解决;通过检查MySQL服务是否启动、查看端口占用情况、关闭防火墙等方式解决;其他常见报错则通过安装系统服务、配置文件修改
    2026-05-05
  • 浅谈MySQL中字符串匹配的N种姿势

    浅谈MySQL中字符串匹配的N种姿势

    本文主要介绍了浅谈MySQL中字符串匹配的N种姿势,包括LIKE、REGEXP、全文索引及SOUNDEX,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • MySQL索引优化Explain详解

    MySQL索引优化Explain详解

    这篇文章主要介绍了MySQL索引优化Explain详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 推荐没有虚拟主机的小巧的Mysql数据库备份脚本(PHP)

    推荐没有虚拟主机的小巧的Mysql数据库备份脚本(PHP)

    推荐没有虚拟主机的小巧的Mysql数据库备份脚本(PHP)...
    2007-07-07
  • 设置MySQL自动增长从某个指定的数开始方法

    设置MySQL自动增长从某个指定的数开始方法

    下面小编就为大家带来一篇设置MySQL自动增长从某个指定的数开始方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论