阿里云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
如图所示,
安装完成后通过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/
解包成功如图:
所有格式都是.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 格式解压时间有数据库大小和主机决定,一般不是很大的话很快。
如图所示,解压成功。然后我们可以回到目录,成功会后刷新查看,效果如图。
停止 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)即成功)。如图:
验证恢复结果
登录 MySQL 并检查数据是否完整:
mysql -u root -p SHOW DATABASES;
如图,成功恢复。
重要提示:
如果恢复失败,请检查日志文件(如 /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






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