今天一位老友跟我說他的mysql備份文件后綴.xb無法還原,或者還原出來只有表格沒有數據, 於是我決定嘗試進行一下備份還原, 在網上搜了一下 有一個騰訊雲的文檔, 按照騰訊雲的來吧
首先
解包備份文件
- 由於備份文件先經過 qpress 壓縮,后經過 xbstream 打包(xbstream 為 Percona 的一種打包/解包工具),所以下載備份文件后,應該先用 xbstream 將其解包。xbstream 工具可以通過 Percona XtraBackup 官網下載或者直接下載二進制包。
- Percona XtraBackup 官網下載安裝
請選擇 Percona XtraBackup 2.4.6 及以上的版本,安裝介紹請參見 官網文檔,

選完對應的系統版本后, 選擇在線安裝
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-24
其實就是上面兩個命令 ,安裝完成后
1.安裝好 XtraBackup 之后,使用 xbstream 命令將備份文件解包到目標目錄。
xbstream -x -C /data < ./test.xb /data 是還原文件 在、data 名稱是 test.xb
2.使用 qpress 命令將目標目錄下所有以.qp結尾的文件都解壓出來。
xtrabackup --decompress --target-dir=/data /data
3.Prepare 備份文件
備份解壓出來之后,需要執行以下命令進行 apply log 操作。
xtrabackup --prepare --target-dir=/data
此時 文件夾內如如下

修改配置文件
由於存在的版本問題,請將解壓文件 backup-my.cnf 中以下參數注釋掉。
- innodb_checksum_algorithm
- innodb_log_checksum_algorithm
- innodb_fast_checksum
- innodb_page_size
- innodb_log_block_size
- redo_log_version

修改文件屬性
修改文件屬性,並檢查文件所屬為 mysql 用戶。
chown -R mysql:mysql /data
啟動 mysqld 進程並登錄驗證
- 啟動 mysqld 進程。
mysqld_safe --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &
這里要說明一下 , 我在使用 mysqld_safe 時報錯commond not found, 於是我就 直接使用 mysqld 具體區別請百度
2.客戶端登錄 mysql 驗證。
mysql -uroot -p
這里我沒有拿到 root 賬戶密碼 沒辦法設置遠程登錄 於是我直接使用mysqldump 把需要的數據庫進行導成sql ,然后在本地導入sql 正常
騰訊說明文檔https://cloud.tencent.com/document/product/236/33363
