暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql xtrabackup备份与恢复

原创 Shubing Wu 2022-09-30
5467

版本选择:
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


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论