龙空技术网

分享一个实用脚本:一键部署MySQL Percona Xtrabackup

波波说运维 1127

前言:

目前朋友们对“xtrabackup备份mysql”可能比较关注,我们都需要学习一些“xtrabackup备份mysql”的相关内容。那么小编同时在网摘上汇集了一些对于“xtrabackup备份mysql””的相关文章,希望我们能喜欢,各位老铁们快快来学习一下吧!

概述

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  >/dev/null 2>&1      if [ $? -eq 0 ];then      	wget   -P /opt      	#wget  -P /opt      	wget   -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  << EOFxtrabackup目录: /usr/bin/xtrabackupxtrabackup版本: ${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  >/dev/null 2>&1      if [ $? -eq 0 ];then      	wget   -P /opt      	#wget  -P /opt      	wget   -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  << EOFxtrabackup目录: /usr/bin/xtrabackupxtrabackup版本: ${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方面的内容,感兴趣的朋友可以关注下~

标签: #xtrabackup备份mysql