版本选择:
mysql5.6、5.7版本适用于xtrabackup2.4版本,mysql8.0版本适用于xtrabackup8.0版本
基于mysql5.6、5.7的xtraback的备份与恢复
一、非压缩方式(MySQL 5.6 & 5.7)
1、创建备份用户
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'bkpuser';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.keyring_component_status TO 'bkpuser'@'localhost';
FLUSH PRIVILEGES;
2、创建全备目录并备份
mkdir /backup/bak_full
**备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --parallel=4 /backup/bak_full
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --parallel=4 /backup/bak_full 2>>/u01/backup/backup.log ---输出日志
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --parallel=4 /backup/bak_full > root/backup/backup.xbstream ----将完整备份直接存储到单个文件:
**恢复:
innobackupex --apply-log /backup/bak_full/2020-02-27_11-04-55/ - -准备备份执行后会被标记,标记后就不能再次使用,所以最好复制一份后再操作,--redo-only不回滚,增量恢复时必须加上
innobackupex --defaults-file=/etc/my.cnf --copy-back /backups/2020-02-27_11-04-55/ ---恢复的目录以my.cnf参数文件总的数据库目录一致,如需变更,需要提前更改
3、修改权限(my.cnf参数文件中数据文件目录)
# chown -R mysql:mysql /usr/local/mysql/data
4、启动数据库
# systemctl start mysqld
-----------查看备份文件夹内容---------
# pwd
/backup/bak_full/2022-02-27_11-04-55
# ls -l
backup-my.cnf #备份用到的配置选项文件
ib_buffer_pool
ibdata1 #数据文件
mysql
performance_schema
sys
xtrabackup_binlog_info #MySQL服务器当前使用的binlog
xtrabackup_checkpoints #备份的类型、状态
xtrabackup_info
xtrabackup_logfile #备份的日志文件
二、压缩方式(MySQL 5.6 & 5.7)
1、全备
innobackupex --defaults-file=/etc/my.cnf --compress --compress-threads=4 --user=root /backup/bak_full
2、解压恢复
innobackupex --defaults-file=/etc/my.cnf --decompress --user=root /backup/bak_full/2021-02-28_11-05-01/ -----解压后文件中包含.qp和解压后的文件
使用以下脚本删除.qp的压缩文件
for f in `find ./ -iname "*\.qp"`; do rm -rf $f; done
恢复:
innobackupex --apply-log /tmp/2020-02-28-11-05/2021-02-28_11-05-01/ ----重演回滚redo log
innobackupex --defaults-file=/etc/my.cnf --copy-back /tmp/2020-02-28-11-05/2021-02-28_11-05-01/
3、修改权限(my.cnf参数文件中数据文件目录)
# chown -R mysql:mysql /usr/local/mysql/data
4、启动数据库
# systemctl start mysqld
三、安装可能出现的报错
1.安装xtrabackup时缺失依赖包:
error: Failed dependencies:
perl(DBD::mysql) is needed by percona-xtrabackup-2.4.19-1.el7.x86_64
perl(Digest::MD5) is needed by percona-xtrabackup-2.4.19-1.el7.x86_64
解决方案:
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
yum -y install rsync perl l perl-Digest-MD5
2.安装toolkit时缺失依赖包:
perl(IO::Socket::SSL) is needed by percona-toolkit-3.1.0-2.el7.x86_64
perl(Term::ReadKey) is neede by percona-toolkit-3.1.0-2.el7.x86_64
解决方案:
yum install perl-IO-Socket-SSL.noarch
yum install perl-TermReadKey.x86_64
3.decompress报错:
210228 23:35:27 [01] decompressing ./2021-02-28_22-30-00/xtrabackup_logfile.qp
sh: qpress: command not found
cat: write error: Broken pipe
Error: decrypt and decompress thread 0 failed.
解决方案:
配置Percona YUM源
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
执行安装命令:
percona-release enable tools
yum install update
yum install qpress




