zoukankan      html  css  js  c++  java
  • Xtrabackup的安装与使用

    Xtrabackup的安装与使用

    1. XtraBackup 简介

      XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心。阿里的 RDS MySQL 物理备份就是基于这个工具做的。由于是采取物理拷贝的方式来做的备份,所以速度非常快,几十G数据几分钟就搞定了,而它巧妙的利用了mysql 特性做到了在线热备份,不用像以前做物理备份那样必须关闭数据库才行,直接在线就能完成整库或者是部分库的全量备份和增量备份。新版本的xtrabackup改成了cmake安装,和以前有点不一样。

    版本说明:2.3.3之后不备份死锁,如果数据库是mysql 5.7之后的必须要装2.4.4才可以用,当然了, 会向下兼容的。

    工具集:软件包安装后,有以下可执行文件

    bin/
    ├── innobackupex -> xtrabackup
    ├── xbcloud
    ├── xbcloud_osenv
    ├── xbcrypt
    ├── xbstream
    └── xtrabackup

    其中最主要的是 innobackupex 和 xtrabackup,前者是一个 perl 脚本,后者是 C/C++ 编译的二进制。Percona 在2.3 版本用C重写了 innobackupex ,innobackupex 功能全部集成到 xtrabackup 里面,只有一个 binary,另外为了使用上的兼容考虑,innobackupex 作为 xtrabackup 的一个软链接。对于二次开发来说,2.3 摆脱了之前2个进程协作的负担,架构上明显要好于之前版本。(Percona XtraBackup 2.3 发布之后,推荐的备份方法是使用 xtrabackup 脚本。 )

    xtrabackup 是用来备份 InnoDB 表的,不能备份非 InnoDB 表,和 mysqld server 没有交互;innobackupex 脚本用来备份非 InnoDB 表,同时会调用 xtrabackup 命令来备份 InnoDB 表,还会和 mysqld server 发送命令进行交互,如加读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等。简单来说,innobackupex 在 xtrabackup 之上做了一层封装。

    一般情况下,我们是希望能备份 MyISAM 表的,虽然我们可能自己不用 MyISAM 表,但是 mysql 库下的系统表是 MyISAM 的,因此备份基本都通过 innobackupex 命令进行;另外一个原因是我们可能需要保存位点信息。

    另外几个工具相对小众些,xbcrypt 是加解密备份文件用的;xbstream 类似于tar,是 Percona 自己实现的一种支持并发写的流文件格式;两者在备份和解压时都会用到(如果备份用了加密和并发)。xbcloud 工具的作用是:把全部或部分 xbstream 档案从云上下载或上传到云。

    2.XtraBackup 安装

    官方下载地址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST/

    系统及版本选择

    (1)CentOS 6

    系统:CentOS 6(Percona 官方建议安装在 RHEL/CentOS 6.5 及以上的系统)

    版本:percona-xtrabackup-24-2.4.6-2.el6.x86_64

    下载地址:https://pan.baidu.com/s/1ONBydCld2FoUfRlshMpBNA

    (2)CentOS 7

    系统:CentOS 7

    版本:percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

    下载地址:https://pan.baidu.com/s/1yEn6bgloHTw30Edn9BUE4Q

    二进制安装/解压缩安装(下载:链接:https://pan.baidu.com/s/1eCtXkkmaxXVN4mDKjglYew 密码:nxww
    
    编译安装

    (3) rpm 安装

    这种安装方法比较简单,只需下载相应的rpm安装包安装即可(注意根据提示安装相应的依赖包)。其中需要的 libev.so.4() 安装包:链接: https://pan.baidu.com/s/1PjO7CFwAa7Y1vvSUZk7weg 提取码: 47ja 

    [root@mysql ~]# cd /home/
    [root@mysql home]# mkdir xtarback
    [root@mysql home]# cd xtarback/
    [root@mysql xtarback]# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
    --2017-02-23 10:26:14-- https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
    正在解析主机 www.percona.com (www.percona.com)... 74.121.199.234
    正在连接 www.percona.com (www.percona.com)|74.121.199.234|:443... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:7647624 (7.3M) [application/x-redhat-package-manager]
    正在保存至: “percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm16% [====================> ] 1,256,542 52.0KB/s 剩余 76s

    查看下载完成的包

    [root@mysql xtarback]# ls -la
    总用量 7476
    drwxr-xr-x. 2 root root 57 2月 23 10:28 .
    drwxr-xr-x. 5 root root 4096 2月 23 10:24 ..
    -rw-r--r--. 1 root root 7647624 2月 17 20:02 percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

    安装依赖

    rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
    yum install perl-DBI
    yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
    yum -y install perl-Digest-MD5

    安装

    [root@mysql xtrabackup]#rpm -ivh percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

    查看安装的版本:

    [root@mysql xtrabackup]#xtrabackup -version
    xtrabackup version 2.4.10 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3198bce)

    3.XtraBackup 备份mysql

    (1)设置定时任务

    # crontab -e
    10 0 * * * /home/script/innobackup.sh

    (2)备份脚本(事先需要手动做一次全备)

    cat /home/script/innobackup.sh
    #!/bin/bash /usr/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=12345556 --socket=/tmp/mysql.sock --compress /home/backup/mysql >> /home/backup/mysql/backup.$(date +%F).log 2>&1

     4.定时删除过期备份,只保留一周的备份

    (1)设置定时任务

    #delete mysql backup
    00 00 * * * /home/script/mysql_clear.sh >/dev/null 2>&1

    (2)定时删除脚本

    #!/bin/bash
    find /home/backup/mysql -mtime +7 -exec rm -rf {} ;
  • 相关阅读:
    sqlplus edit 方式设置成vi
    oracle minus union intersect
    子查询中可以包含order by 子句--(在from里面)
    Linux 7 Ansible 初学 一个简单的 playbook 学习 yum 模块
    Linux 7 Ansible 初学 配置被控制机器的 YUM 源
    Linux 7 安装 Ansible 并作基本的配置
    Linux 7 安装开发工具包 Development Tools
    Linux 7.0 安装 mariadb 数据库及初始化,创建数据库,创建用户
    Linux bash初学 if语句
    Linux bash初学 case语句
  • 原文地址:https://www.cnblogs.com/heyongboke/p/9946722.html
Copyright © 2011-2022 走看看