阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

李洋个人博客之前写过《CentOS7系统下手动安装MySQL8.0版本,亲测有效,图文教程超详细》的相关文章教程,这回才是重点,为什么是临时安装,就是为了这个数据的还原,因为之前没有接触过这个类型的还原,而且是只有备份文件,至于怎么备份的,为什么是这个格式不晓得,就告诉我把这个数据库恢复到本地,完成后等待下一步的部署,好了不废话了,开始操作,其实阿里云官方的文档已经给出了,文章大部分都源自阿里文库,只是替换的时候我出错了,一直没有成功,所以自己又多次尝试用其他方案还原成功,所以记录下过程没,授权下载阿里云数据库的备份文件。声明:本教程仅仅针对阿里云备份的xxx_qp.xb数据库文件且MySQL数据库的版本为8.0,其他版本未测试,请自行参考

首先,确保您已从阿里云 RDS 控制台获取了备份文件的下载地址。使用以下命令下载备份文件到本地服务器:

wget -c '备份文件下载地址' -O 数据库备份名称_qp.xb

确保恢复的数据库跟云备份的一致不然无效,我测试云备份Mysql8.0,安装5.7+无效,因为宝塔安装MySQL8.0+至少需要6GB内存,后来只能手动安装MySQL8.0,安装过程不赘述了,直接去恢复云备份的数据库文件。

注意:

确保文件名后缀与下载地址中的后缀一致(如 _qp.xb 或 _xb.qp)。

安装XtraBackup

安装备份恢复工具 Percona XtraBackup

说明:本示例将工具下载至/root目录下,实际安装命令会因目录不同而有所变化,请以实际工具下载位置为准调整安装命令。

wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230825/kpof/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm?spm=a2c4g.11186623.0.0.688ab36ebmiWTV&file=t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm

由于RDS MySQL 8.0有新增Redo类型,开源版本的Percona XtraBackup可能存在兼容性问题。因此请下载下表RDS提供的XtraBackup工具。

下载文件:放在/root目录下,然后执行:

sudo yum localinstall -y t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm

安装qpress

安装必要的工具,安装解压工具qpress。

 ## 下载可执行文件的tar包

wget "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar"

## 解压下载的tar包

tar -xvf qpress-11-linux-x64.tar

## 设置qpress文件的执行权限

sudo chmod 775 qpress

## 拷贝qpress到/usr/bin中,以便系统可以全局访问

sudo cp qpress /usr/bin

如图所示,

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

安装完成后通过qpress工具进行解压,使用Percona XtraBackup工具,将解压后的备份文件恢复到自建数据库的数据目录中。 

解压备份文件

根据备份文件的格式,选择适当的解压方法。

xbstream文件包(_qp.xb后缀)

执行以下解压命令时,请将【hins20779109_data_20220802045829_qp.xb】替换为您另存为的备份文件名,/usr/local/mysql/mysql_bkdata/替换为您创建的备份解压路径。

## 步骤一:解包

cat /www/backup/hins20779109_data_20220802045829_qp.xb | /u01/xtrabackup80/bin/xbstream -x -v -C /usr/local/mysql/mysql_bkdata/

如果提示“not /u01/xtrabackup80/bin/ ”就使用:

cat /www/backup/hins20779109_data_20220802045829_qp.xb | xbstream -x -v -C /usr/local/mysql/mysql_bkdata/

解包成功如图:

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

所有格式都是.qp的,还是不能直接使用,我们还需要解压,MySQL 8.0代码:

/u01/xtrabackup80/bin/xtrabackup --decompress --remove-original --target-dir=/usr/local/mysql/mysql_bkdata/

提示“not /u01/xtrabackup80/bin/ ”用下面命令:

xtrabackup --decompress --remove-original --target-dir=/usr/local/mysql/mysql_bkdata/

对于 _qp.xb 格式解压时间有数据库大小和主机决定,一般不是很大的话很快。

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

如图所示,解压成功。然后我们可以回到目录,成功会后刷新查看,效果如图。

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

停止 MySQL 服务

在恢复之前,请确保本地 MySQL 服务已停止:

sudo systemctl stop mysqld

查看状态(Active: inactive (dead))

systemctl status mysqld

替换数据目录

我们将【/usr/local/mysql/】目录下的【data】重命名【data2】然后将【mysql_bkdata】重命名【data】,然后重新修复权限

chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql

复然后重新启动MySQL,查看状态,命令,

systemctl start mysqld
systemctl status mysqld

如图:检查服务状态:systemctl status mysqld(显示active (running)即成功)。如图:

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

验证恢复结果

登录 MySQL 并检查数据是否完整:

mysql -u root -p
SHOW DATABASES;

如图,成功恢复。

阿里云RDS MySQL数据库物理备份的xb文件格式恢复到本地数据库的图文教程

重要提示:

如果恢复失败,请检查日志文件(如 /var/log/mysqld.log)以排查问题。

确保本地 MySQL 版本与备份文件的版本一致,否则可能导致兼容性问题[1]。

另外,如果您的数据库文件已加密,您需要先解密再进行恢复。本站还原的数据库是未加密处理的,获取解密密钥(通常由阿里云提供)。

使用以下命令解密数据:

xtrabackup --decrypt=AES256 --encrypt-key=您的解密密钥 --target-dir=/home/mysql/data

注意:

解密后,继续执行第解压操作的步骤。

注意事项

版本一致性:建议本地 MySQL 数据库版本与备份文件的版本保持一致,避免因版本差异导致恢复失败。

数据冲突:在恢复前,请确保目标数据库中不存在与备份数据同名的数据库或表,以免发生数据覆盖或丢失。

中断风险:恢复过程中请勿中断任务,否则可能导致数据不完整或恢复失败。

通过以上步骤,您可以成功将 hins14438959_data_20220802043338_qp.xb 备份文件还原到本地 MySQL 数据库。好了,到目前为止数据库已经恢复完成了,有问题的留言反馈吧~~~

文章声明:以上内容(如有图片或视频亦包括在内)除非注明,否则均为网站名称原创文章,转载或复制请以超链接形式并注明出处。https://xz.itlaoli.com/blog/849.html

« 上一篇
下一篇 »

相关推荐

想搭Halo博客?MySQL和PostgreSQL怎么选?看完这篇就懂了

2025年09月02日

6824阅读

告别局域网限制,cpolar 内网穿透+宝塔面板,公网远程访问超简单

2025年08月26日

3793阅读

windows修改服务器远程桌面端口图文教程

2025年08月04日

3676阅读

为什么本地 HTML、JS、JSON 文件会出现跨域问题?

2025年07月18日

4254阅读

搭建自己的技术博客有什么意义?

2025年07月03日

4172阅读

解决Zblog文章中Emoji表情显示为问号的问题​

2025年06月30日

3910阅读

发表评论

访客 访客
评论列表 (暂无评论,3707人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码