mysql制作教程:分享一个实用脚本
mysql制作教程:分享一个实用脚本function install_xtrabackup2.4_el7() { echo "" echo -e "\033[33m**********************************************自动部署Percona xtrabackup 2.4*********************************************\033[0m" #下载包 if [ -f /opt/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm ] && [ -f /opt/libev-4.15-3.el7.x86_64.rpm ] ;then echo "*****存在Percona xtrabackup 2.4安装包,无需下载*****" e
概述Percona XtraBackup是世界上唯一一款开源的免费MySQL热备份软件,可以为InnoDB和XtraDB数据库执行非阻塞备份。Percona XtraBackup可以与MySQL和Percona Server for MySQL协同工作。它支持InnoDB、XtraDB和MyRocks存储引擎的完全无阻塞备份。此外,它还可以通过在备份结束时短暂暂停写入操作来备份以下存储引擎:MyISAM、Merge和Archive,包括分区表、触发器和数据库选项。
注意:
随着Percona XtraBackup 8.0的推出,Percona XtraBackup 2.4将继续支持MySQL和Percona Server 5.6和5.7数据库。由于新的MySQL重做日志和数据字典格式,Percona XtraBackup 8.0.x版本将只与MySQL8.0.x和即将推出的用于MySQL8.0.x的Percona服务器兼容。
MySQL备份工具特性比较
说明:
- 复制非InnoDB数据时,InnoDB表仍然被锁定。
- Percona Server for MySQL支持快速增量备份,支持XtraDB更改页面跟踪。
- Percona XtraBackup支持对任何备份进行加密。MySQL企业备份只支持对单个文件备份进行加密。
- Percona XtraBackup根据每秒IO操作数执行限制。MySQL企业备份支持操作之间的可配置睡眠时间。
- Percona XtraBackup跳过辅助索引页,并在准备压缩备份时重新创建它们。MySQL Enterprise Backup跳过未使用的页并重新插入到准备阶段。
- Percona XtraBackup甚至可以从完整备份中导出单个表,无论InnoDB版本如何。MySQL Enterprise Backup仅在执行部分备份时使用InnoDB 5.6可移植表空间。
- 备份锁是用Percona Server for MySQL中的读锁刷新表的轻量级替代方法。Percona XtraBackup使用它们自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。
一键部署xtrabackup脚本
function install_xtrabackup2.4_el7()
{
echo ""
echo -e "\033[33m**********************************************自动部署Percona xtrabackup 2.4*********************************************\033[0m"
#下载包
if [ -f /opt/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm ] && [ -f /opt/libev-4.15-3.el7.x86_64.rpm ] ;then
echo "*****存在Percona xtrabackup 2.4安装包,无需下载*****"
else
ping -c 4 www.percona.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget http://rpmfind.net/linux/epel/7/x86_64/Packages/l/libev-4.15-3.el7.x86_64.rpm -P /opt
#wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Digest-MD5-2.52-3.el7.x86_64.rpm -P /opt
wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.20/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm -P /opt
else
echo "please download Percona xtrabackup 2.4 package manual !"
exit $?
fi
fi
#配yum安装perl-DBD-MySQL和perl-Digest-MD5
rpm -qa|grep perl-DBD-MySQL
if [ $? -eq 1 ];then
install_yum
yum install -y perl-DBD-MySQL &>/dev/null
yum install -y perl-Digest-MD5 &>/dev/null
action "************安装perl-DBD-MySQL完成************" /bin/true
else
action "************已安装perl-DBD-MySQL包************" /bin/true
fi
#安装Percona xtrabackup 2.4
action "*************开始安装Percona xtrabackup 2.4**************" /bin/true
rpm -ivh /opt/libev-4.15-3.el7.x86_64.rpm
rpm -ivh /opt/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
sleep 3
xtra=`xtrabackup --version`
echo -e "\033[33m*******************************************完成Percona xtrabackup 2.4部署********************************************\033[0m"
cat > /tmp/xtrabackup2.4.log << EOF
xtrabackup目录: /usr/bin/xtrabackup
xtrabackup版本: ${xtra}
EOF
cat /tmp/xtrabackup2.4.log
echo -e "\e[1;31m 以上信息10秒后消失,保存在/tmp/xtrabackup2.4.log 文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
function install_xtrabackup8.0_el7()
{
echo ""
echo -e "\033[33m**********************************************自动部署Percona xtrabackup 8.0*********************************************\033[0m"
#下载包
if [ -f /opt/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm ] && [ -f /opt/libev-4.15-3.el7.x86_64.rpm ] ;then
echo "*****存在Percona xtrabackup 8.0安装包,无需下载*****"
else
ping -c 4 www.percona.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget http://rpmfind.net/linux/epel/7/x86_64/Packages/l/libev-4.15-3.el7.x86_64.rpm -P /opt
#wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Digest-MD5-2.52-3.el7.x86_64.rpm -P /opt
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm -P /opt
else
echo "please download Percona xtrabackup 8.0 package manual !"
exit $?
fi
fi
#配yum安装perl-DBD-MySQL和perl-Digest-MD5
rpm -qa|grep perl-DBD-MySQL
if [ $? -eq 1 ];then
install_yum
yum install -y perl-DBD-MySQL &>/dev/null
yum install -y perl-Digest-MD5 &>/dev/null
action "************安装perl-DBD-MySQL完成************" /bin/true
else
action "************已安装perl-DBD-MySQL包************" /bin/true
fi
#安装Percona xtrabackup 8.0
action "*************开始安装Percona xtrabackup 8.0**************" /bin/true
rpm -ivh /opt/libev-4.15-3.el7.x86_64.rpm
rpm -ivh /opt/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm
sleep 3
xtra=`xtrabackup --version`
echo -e "\033[33m*******************************************完成Percona xtrabackup 8.0部署********************************************\033[0m"
cat > /tmp/xtrabackup8.0.log << EOF
xtrabackup目录: /usr/bin/xtrabackup
xtrabackup版本: ${xtra}
EOF
cat /tmp/xtrabackup8.0.log
echo -e "\e[1;31m 以上信息10秒后消失,保存在/tmp/xtrabackup8.0.log 文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
脚本内容:
脚本执行过程:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~