一、环境:
Linux:CentOS Linux release 7.5.1804 (Core)
Mysql:5.7.20
Xtrabackup:2.4.9
linux查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-release
二、介绍
Xtrabackup 是一个对 InnoDB 做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具 InnoDB Hotbackup 的一个很好的替代品。它能对 InnoDB 和 XtraDB 存储引擎的数据库非阻塞地备份(对于 MyISAM 的备份同样需要加表锁)。XtraBackup 支持所有的 Percona Server、MySQL、MariaDB 和 Drizzle。
xtrabackup 有两个主要的工具:xtrabackup、innobackupex
(1).xtrabackup只能备份InnoDB和XtraDB 两种数据表
(2).innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表
Innobackupex完整备份后生成了几个重要的文件:
xtrabackup_binlog_info:记录当前最新的LOG Position
xtrabackup_binlog_pos_innodb:innodb log postion
xtrabackup_checkpoints: 存放备份的起始位置beginlsn和结束位置endlsn,增量备份需要这个lsn[增量备份可以在这里面看from和to两个值的变化]
Xtrabackup特点:
(1)备份过程快速、可靠
(2)备份过程不会打断正在执行的事务
(3)能够基于压缩等功能节约磁盘空间和流量
(4)自动实现备份检验
(5)还原速度快
三、安装
- 下载
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar
- 解压
tar xf Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar
- 安装
yum install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm -y
# 查看版本
innobackupex -v
# 位置
which xtrabackup
安装完之后会生成几个工具:http://www.percona.com/doc/percona-xtrabackup/2.1/manual.html
innobackupex:这个是其实是下面三个工具的一个perl脚本封装,可以备份MyISAM, InnoDB, XtraDB表。但在处理Myisam时需要加一个读锁。
xtrabackup:一个由C编译而来的二进制文件,只能备份InnoDB和XtraDB数据。
xbcrypt:用来加密或解密备份的数据。
xbstream:用来解压或压缩xbstream格式的压缩文件。
innobackupex :
xtrabackup命令只备份数据文件,并不备份数据表结构(.frm),所以使用xtrabackup恢复的时候必须有对应表结构文件(.frm)。用innobackupex命令,此命令相当于冷备份,复制数据目录的索引,数据,结构文件,但会有短暂的锁表(时间依赖于MyISAM大小)。
四、使用
- Xtrabackup 普通全量备份、还原
# 备份所有数据库:备份目录里生成日期命名的文件夹
innobackupex --defaults-file=/etc/mysql/my.cnf --user=test --password=123 --backup /home/xtrabackup/
# 还原
1.先 prepare ,利用 --apply-log 的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态
innobackupex --apply-log /home/xtrabackup/2016-09-23_10-53-51/
2.copy:需要数据目录为空
innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /home/xtrabackup/2016-09-23_10-53-51/
3.改权限
++++++++++++++++++
# 备份所有数据库:指定备份目录
innobackupex --defaults-file=/etc/mysql/my.cnf --user=test--password=123 --no-timestamp /home/xtrabackup/
# 还原同上
+++++++++++