工具介绍:
1、xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表, 也不能备份数据表结构;
2、innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。
3、xtrabackup 2.3版本开始innobackupex全部集成到xtrabackup,innobackupex已经被废弃。
1.检查和安装与Perl相关的模块
xtrabackup工具是使用Perl语言编写和执行的,所以需要系统中有Perl环境。
依赖包检查命令为:
rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL
如果有依赖包确实,可以使用下面的命令安装:
yum -y install perl-DBI
yum -y install perl-DBD-MySQL
yum -y install perl-Time-HiRes
yum -y install perl-IO-Socket-SSL
2、安装过程
Warning: Make sure that you have the libev package installed before installing Percona XtraBackup. The libev package is available from the EPEL repositories.
从http://rpmfind.net/linux/rpm2html/search.php上下载 libev-4.03-3.el6.x86_64.rpm安装包,然后安装即可,如下所示
[root@oracle12c /]# rpm -ivh libev-4.03-3.el6.x86_64.rpm
[root@oracle12c /]# rpm -ivh mysql-community-libs-compat-5.7.19-1.el6.x86_64.rpm
[root@oracle12c /]# rpm -ivh perl-DBD-MySQL-4.022-1.el6.rfx.x86_64.rpm
[root@oracle12c /]# rpm -ivh percona-xtrabackup-24-2.4.15-1.el6.x86_64.rpm
检查安装
[root@oracle12c /]# rpm -qa |grep xtrabackup
percona-xtrabackup-24-2.4.15-1.el6.x86_64
3、备份过程:
全备:
xtrabackup --backup --password=123456 --target-dir=/mysql/backups/base/
增量:
xtrabackup --backup --password=123456 --target-dir=/mysql/backups/inc1 --incremental-basedir=/mysql/backups/base
xtrabackup --backup --password=123456 --target-dir=/mysql/backups/inc2 --incremental-basedir=/mysql/backups/inc1
4、恢复过程:
前提要求
1、Backup needs to be prepared before it can be restored.
2、mysql服务datadir目录为空。
3、mysql服务停止运行。
4、有需要恢复的时间范围的binlog日志。
基于时间点恢复,确定恢复到哪个增量备份
cat /path/to/backup/xtrabackup_binlog_info
mysql-bin.000003 57
数据增量恢复
xtrabackup --prepare --apply-log-only --target-dir=/mysql/backups/base
xtrabackup --prepare --apply-log-only --target-dir=/mysql/backups/base --incremental-dir=/mysql/backups/inc1
xtrabackup --prepare --apply-log-only --target-dir=/mysql/backups/base --incremental-dir=/mysql/backups/inc2
恢复数据文件到my.cnf指定的datadir
xtrabackup --copy-back --target-dir=/mysql/backups/base
OR:
rsync -avrP /mysql/backups/base/ /mysql/data/
修改权限
chown -R mysql:mysql /mysql/data/
启动数据库
service mysqld start
binlog日志挖掘并恢复数据
mysqlbinlog /path/to/datadir/mysql-bin.000003 /path/to/datadir/mysql-bin.000004 --start-position=57 --stop-datetime="11-12-25 01:00:00" | mysql -u root -p