1、xtrabackup的安装
8.0版本-支持mysql8
2.4版本支持mysql5.7
https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.15/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
或者下载之后上传centos系统
yum install -y percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
rpm -qa |grep xtrabackup
which xtrabackup
常用选项:
--host 指定主机
--user 指定用户名
--password 指定密码
--port 指定端口
--databases 指定数据库
--incremental 创建增量备份
--incremental-basedir 指定包含完全备份的目录
--incremental-dir 指定包含增量备份的目录
--apply-log 对备份进行预处理操作
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
--redo-only 不回滚未提交事务
--copy-back 恢复备份目录
注意:备份时需启动MySQL,恢复时需关闭MySQL,清空mysql数据目录且不能重新初始化,恢复数据后应该立即进行一次完全备份
2、xtrabackup全量备份与恢复
备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /path/
停止服务,删除目录数据
service mysqld stop
cd /data/mysqldata/
rm -rf *
恢复:
innobackupex --apply-log /path/2018-07-30_11-04-55/ #保持一致性
innobackupex --defaults-file=/etc/my.cnf --copy-back /path/2018-07-30_11-04-55/
chown -R mysql.mysql /data/mysqldata/
service mysqld start
3、xtrabackup增量备份与恢复
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental /path2/ --incremental-basedir=/path/2017-12-04_13-57-29
--incremental /path2/ 指定增量备份文件备份的目录
--incremental-basedir 指定上一次全备或增量备份的目录
增量恢复
innobackupex --apply-log --redo-only /path/2017-12-04_13-57-29/
innobackupex --apply-log --redo-only /path/2017-12-04_13-57-29/ --incremental-dir=/path2/2017-12-05_09-27-06/
innobackupex --defaults-file=/etc/my.cnf --copy-back /path/2017-12-04_13-57-29/
4、常用命令
cat xtrabackup_checkpoints #查看备份检查点
使用tar备份到远程服务器
事先配置免密登录
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar "/path/backup/" | ssh root@192.168.15.6 "gzip ->/home/xttest/mysql_backup.tar.gz"
解压
tar -ixzvf mysql_backup.tar.gz