天天看點

阿裡雲“.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 ”,我先上傳上來。
阿裡雲“.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

阿裡雲“.xb”格式備份資料庫恢複

// 上面解包後再進行解壓

[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!

阿裡雲“.xb”格式備份資料庫恢複
  1. 按照官方的意思是解壓下來還需要再次解壓,否則是不能用的。

// 再一次解壓

[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 下。

阿裡雲“.xb”格式備份資料庫恢複

5、再采取最簡單的方法,直接裝個PHPStudy Windows版本的,直接把自帶的 Data 下檔案全部删除,替換成我們解包好的檔案(注意,要先停止 Mysql 再覆寫,否則會報錯!)

阿裡雲“.xb”格式備份資料庫恢複
阿裡雲“.xb”格式備份資料庫恢複

最後,我們在用PHPMyAdmin打開看一下,發現資料庫正常可以檢視了。當然官方給出的教程是還有幾個步驟的,我這種方法是最簡單,但是也可能出現各種報錯的。如果是學習,還是要按照官方教程走一遍才行。

繼續閱讀