一. Xtrabackup介绍
XtraBackup由数据库软件服务企业percona提供的一款热备工具,除了能够支持常见的innodb、myisam存储引擎外,还支持XtraDB引擎(在innodb存储引擎基础上开发).
XtraBackup的几个优点:
a. 备份集高校、完整、可用
b. 备份任务执行过程中不会阻塞事务
c. 节省磁盘空间,降低网络带宽占用
d. 备份集自动验证机制
e. 恢复更快二. xtrabackup-24-2.4.8安装
1. 安装依赖rpm包
[root@mysql ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
warning: libev-4.15-1.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing... ########################################### [100%]
1:libev ########################################### [100%]
[root@mysql ~]# rpm -ivh MySQL-shared-compat-5.6.36-1.linux_glibc2.5.x86_64.rpm
warning: MySQL-shared-compat-5.6.36-1.linux_glibc2.5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ########################################### [100%]
1:MySQL-shared-compat ########################################### [100%]
[root@mysql ~]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
warning: perl-DBD-MySQL-4.013-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:perl-DBD-MySQL ########################################### [100%]
2. 安装xtabackup
[root@mysql ~]# rpm -ivh percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm
warning: percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:percona-xtrabackup-24 ########################################### [100%]
[root@mysql ~]# xtrabackup --version
xtrabackup version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7)
三. 使用xtrabackup
Xtrabackup命令有两种模式
--backup:创建备份集
--prepare:准备备份集
前者是为了备份,后者是为了恢复。
1. 使用xtrabackup命令备份数据库
[mysql@mysql ~]# xtrabackup --defaults-file=/u01/my3306/my.cnf --user='xtrabk' --password='mysqld' --socket=/u01/my3306/run/mysql.sock --backup --target-dir=/backup/bak/bak_20180110
--backup:指定当前的操作模式,backup即是要创建备份集
--target-dir:指定备份集的存储路径,如果指定的路径不存在,那么xtrabackup会自动创建,而如果目录存在,需要确保该目录为空,否则xtrabackup在备份时会抛出异常。
--defaults-file:从mysql的选项文件中读取参数,最重要的是获取到datadir的参数值。另外xtrabackup的参数也可以放在这个文件中,这样就不用每次执行都去指定参数了。
备份过程解析:
step1. 查找数据文件的路径,搜集innodb相关的信息
xtrabackup: cd to /u01/my3306/data
xtrabackup: open files limit requested 65535, set to 65535
xtrabackup: using the following InnoDB configuration:
xtrabackup: innodb_data_home_dir = /u01/my3306/log/iblog
xtrabackup: innodb_data_file_p