最详细xb文件后缀恢复到本地MySql操作过程与报错问题解决办法详情

# 前言

xb文件是什么?xb文件是数据备份文件的格式为xbstream文件包(_qp.xb后缀)!那么该如何把物理备份文件恢复到自建数据数据库!参照网上很多文章发现其实写的不是很详细、有些报错信息和问题处理都没有一个准确和详细的图文说明、让人摸不着头脑、才有了如下文章、为了解决新手xb文件后缀数据恢复与报错问题解决!

# 环境配置

centos7
Percona XtraBackup
qpress
Mysql5.6

# 安装过程

  1. 官方文档xtraBackup

     MySQL 5.6及之前的版本 =》Percona XtraBackup 2.3,安装指导请参见官方文档[Percona XtraBackup 2.3][1]
     MySQL 5.7版本 =》 Percona XtraBackup 2.4,安装指导请参见官方文档[Percona XtraBackup 2.4][2]
     MySQL 8.0版本需要 =》 Percona XtraBackup 8.0,安装指导请参见官方文档[Percona XtraBackup 8.0][3]
    
  2. 详细图文安装xtraBackup
    2.1 下载rpm包
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.5/binary/redhat/7/x86_64/percona-xtrabackup-2.3.5-1.el7.x86_64.rpm

2.2 安装Percona XtraBackup

yum localinstall percona-xtrabackup-2.3.2-1.el7.x86_64.rpm -y

xtrabackup-2.png
2.3 查看是否安装完成

xtrabakcup -v

3.安装qpress

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm -y
yum install -y qpress

4.若出现报错请翻阅底部进行拍错

# 进行解压

物理备份的三个后缀

  • tar 压缩包 (.tar.gz 后缀)
  • xbstream 压缩包 (.xb.gz 后缀)
  • xbstream 文件包(_qp.xb 后缀)

对于tar 压缩包 (.tar.gz 后缀),使用命令:

tar -izxvf <数据备份文件名>.tar.gz -C /home/mysql/data

对于xbstream 压缩包 (.xb.gz 后缀),使用命令:

gzip -d -c <数据备份文件名>.xb.gz | xbstream -x -v -C /home/mysql/data

对于xbstream 文件包(_qp.xb 后缀),使用命令:

cat <数据备份文件名>_qp.xb | xbstream -x -v -C /home/mysql/data
MySQL 5.6/5.7解压
innobackupex --decompress --remove-original /home/mysql/data
MySQL 8.0解压
xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

注意:由于我使用的是MySQL5.6数据库、那么就使用5.6的方式解压、并且我的后缀为xb、你使用哪种后缀和数据库、就对应哪种解压方式!

# 恢复解压好的备份文件

要执行这一步、请确认你上一步是否有报错、或者出错的、当都没有出错的情况在执行如下步骤!
1.MySQL 5.6/5.7执行方式 //我这里的解包目录为xbmysql、请切换自己的目录、或者创建一个类似目录

innobackupex --defaults-file=/xbmysql/backup-my.cnf --apply-log /xbmysql

2.MySQL8.0执行方式

xtrabackup --prepare --target-dir=/home/mysql/data
xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/home/mysql/data

3.出现如图所示代表解压完成

# 修改backup-my.cnf文件

找到解压完成目录内的backup-my.cnf、修改如下几个内容、若内容不存在无需修改、只修改存在部分

vim /xbmysql/backup-my.cnf

#innodb_log_checksum_algorithm
#innodb_fast_checksum
#innodb_log_block_size
#innodb_doublewrite_file
#rds_encrypt_data
#innodb_encrypt_algorithm
#redo_log_version
#master_key_id
#server_uuid

修改完上述内容、并且新增一条忽略密码登陆

skip-grant-tables

保存即可!

# 修改解压目录文件夹为MySQL用户

chown -R mysql:mysql /xbmysql //这里xbmysql是我的目录、请修改为你创建的目录

修改mysql组

# 执行mysqld_safe命令启动mysql

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

mysql连接成功.png

至此xb后缀数据恢复成功!

#XB恢复时报错处理

  1. sh:qpress未找到命令
    此处为qpress安装未成功、请重新安装!

2.qpress安装出现公钥尚未安装
解决办法执行如下命令:

yum update percona-release

3.在执行mysqld_safe出现PID报错原因
mysqld_safe执行时报错:mysqld_safe mysqld from pid file /xbmysql/localhost.localdomain.pid ended
解决办法:
由于原先的mysql未关闭、导致mysqld无法起来、只需要关闭mysql在执行mysqld_safe即可解决

4.MySQL5.7中mysqld_safe未找到
在MySQL5.7中会发现一些高版本5.7是无法找到mysqld_safe命令
解决办法:
降至低版本或者使用mysqld_save命令执行 参照:MySQL官网

5.执行innobackupex出现报错
在执行解压的时候会报错、需要查看源数据是否损坏、xtrabakup是否与自己mysql版本不相符合导致!

# 结尾

本篇文章采纳了不少文章组合起来的、小编也是发现报错一步步的解决起来、若是发现有报错无法解决或者本篇文章有错误欢迎底部留言反馈交流!

采纳文章列表:
阿里云XB恢复
mysqld_safe无法找到
qpress安装
yum安装percona报错

原创文章,作者:纸飞机,如若转载,请注明出处:https://www.zfjsec.com/296.html
-- 展开阅读全文 --
干货🔥 树莓派制作存储NAS、离线下载Aria2
« 上一篇 08-08
windows下mysql绿色版安装
下一篇 » 08-18

发表评论