悟夜叉个人博客 技术专题 阿里云“.xb”数据库物理备份文件本地重建

阿里云“.xb”数据库物理备份文件本地重建

XB文件是什么?

不管你是用的阿里云还是腾讯云的RDS数据库,他们都是用的开源软件Percona Xtrabackup 进行备份的,所以恢复也要用它。

目前物理备份集文件有几种格式:

1、tar 压缩包(.tar.gz 后缀)
2、xbstream 压缩包(.xb.gz 后缀)
3、xbstream 文件包(_qp.xb 后缀)
4、xbstream qpress压缩包(_xb.qp后缀)

实际操作:

当时拿到这个数据备份都不知道怎么下手,直接登录aliyun下了一个工单问了下。给了一个官方的教程【点击这里访问】,跟着教程走就没有错,最多遇到一两个小坑。

1、准备一个Linux系统,建议使用CentOS。Windows环境下没研究过,也能做可能比较麻烦点。我拿到的是这个文件“ xxxxx_qp.xb ”,我先上传上来。

2、安装本次转换XB文件必要的软件(注意安装Mysql 5.5/6/7)。

// 获取xtrabackup
[root@localhost ~]# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
...
// 安装xtrabackup
[root@localhost ~]#  yum install -y percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
...
// 安装qpress
[root@localhost ~]# wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar"
...
Connecting to docs-aliyun.cn-hangzhou.oss.aliyun-inc.com (docs-aliyun.cn-hangzhou.oss.aliyun-inc.com)|42.120.230.2|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 81920 (80K) [application/x-tar]
Saving to: ‘qpress-11-linux-x64.tar.1’
 
100%[===============================================>] 81,920       353KB/s   in 0.2s 
  
2022-10-08 13:37:37 (353 KB/s) - ‘qpress-11-linux-x64.tar.1’ saved [81920/81920]
[root@localhost ~]# tar xvf qpress-11-linux-x64.tar
qpress
[root@localhost ~]# chmod 775 qpress
[root@localhost ~]# cp qpress /usr/bin

3、解压XB包文件(xbstream 文件包 _qp.xb 后缀)。

// 命令:cat <数据备份文件名> | xbstream -x -v -C <解压目录>
[root@localhost ~]# cat /www/ceshi/rds.xb | xbstream -x -v -C /www/data
...
jiutianpay/t_goods.frm.qp
jiutianpay5/t_public_bank.frm.qp
jiutianpay5/t_personal_bank.frm.qp
jiutianpay5/t_partner.frm.qp
jiutianpay5/t_member.frm.qp
jiutianpay5/t_receivers_order.frm.qp
jiutianpay5/t_category.frm.qp
jiutianpay5/t_banned.frm.qp
jiutianpay5/t_combine_order.frm.qp

// 上面解包后再进行解压
[root@localhost ~]# innobackupex --decompress --remove-original /www/data
...
221008 15:56:54 [01] decompressing ./xtrabackup_binlog_info.qp
221008 15:56:54 [01] removing ./xtrabackup_binlog_info.qp
221008 15:56:54 [01] decompressing ./backup-my.cnf.qp
221008 15:56:54 [01] removing ./backup-my.cnf.qp
221008 15:56:54 [01] decompressing ./xtrabackup_info.qp
221008 15:56:54 [01] removing ./xtrabackup_info.qp
221008 15:56:54 [01] decompressing ./xtrabackup_logfile.qp
221008 15:56:54 [01] removing ./xtrabackup_logfile.qp
221008 15:56:54 completed OK!

4、按照官方的意思是解压下来还需要再次解压,否则是不能用的。

// 再一次解压
[root@localhost ~]# innobackupex --defaults-file=/www/data/backup-my.cnf --apply-log /www/data
...
InnoDB: Waiting for purge to start
InnoDB: 5.7.13 started; log sequence number 2970017813
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 2970017832
221008 16:11:36 completed OK!

因为已经知道了是Mysql5.7的,准备直接将文件全部替换到 Mysql 下的 data 目录看看,但是可惜宝塔面板做了限制,不能直接对将文件复制到 Mysql Data 下。

5、再采取最简单的方法,直接装个PHPStudy Windows版本的,直接把自带的 Data 下文件全部删除,替换成我们解包好的文件(注意,要先停止 Mysql 再覆盖,否则会报错!)

最后,我们在用PHPMyAdmin打开看一下,发现数据库正常可以查看了。当然官方给出的教程是还有几个步骤的,我这种方法是最简单,但是也可能出现各种报错的。如果是学习,还是要按照官方教程走一遍才行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

站长QQ/VX:82794

在线咨询: QQ交谈

邮箱: 82794@qq.com

任何技术问题请联系QQ,非特殊行业请勿加微信!龙信小伙伴请联系微信群找我。
关注微信
非商务合作请勿添加

非商务合作请勿添加微信

返回顶部