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方面的内容,感兴趣的朋友可以关注下~





