XB檔案是什麼?
不管你是用的阿裡雲還是騰訊雲的RDS資料庫,他們都是用的開源軟體Percona Xtrabackup 進行備份的,是以恢複也要用它。
目前實體備份集檔案有幾種格式:
1、tar 壓縮包(.tar.gz 字尾)
2、xbstream 壓縮包(.xb.gz 字尾)
3、xbstream 檔案包(_qp.xb 字尾)
4、xbstream qpress壓縮包(_xb.qp字尾)
實際操作:
當時拿到這個資料備份都不知道怎麼下手,直接登入aliyun下了一個工單問了下。給了一個官方的教程,跟着教程走就沒有錯,最多遇到一兩個小坑。
- 準備一個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!
- 按照官方的意思是解壓下來還需要再次解壓,否則是不能用的。
// 再一次解壓
[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打開看一下,發現資料庫正常可以檢視了。當然官方給出的教程是還有幾個步驟的,我這種方法是最簡單,但是也可能出現各種報錯的。如果是學習,還是要按照官方教程走一遍才行。