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备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何解决mysqlimport: Error: 13, Can''t get stat of 的问题
本篇文章是对解决mysqlimport: Error: 13, Can't get stat of问题的方法进行了详细的分析介绍,需要的朋友参考下2013-06-06
MySQL STORED 生成列(Generated Column) 的使用小结
MySQL 8中的生成列可以解决带函数判断的SQL导致的索引无法使用和性能问题,生成列分为VIRTUAL和STORED,其中STORED列会在插入时计算并存储在磁盘上,可以建索引,非常适合用于复杂的SQL优化,下面就一起来了解一下2026-02-02
mysql 5.7.5 m15 winx64安装配置方法图文教程
这篇文章主要为大家分享了mysql 5.7.15 m15 winx64安装配置方法图文教程,感兴趣的朋友可以参考一下2016-09-09
用docker安装mysql报错两种解决方案(Docker配置问题方面)
这篇文章主要介绍了用docker安装mysql报错两种解决方案的相关资料,错误可能由网络问题、DNS解析失败、配置问题或IP被限制引起,解决方案包括配置镜像加速器、修改Docker配置文件或直接在命令窗口配置,需要的朋友可以参考下2026-03-03


最新评论