xtrabackup備份之xbstream壓縮


1、介紹

線上的生產環境在數據備份的時候,使用--stream=tar壓縮,壓縮的時候發現系統根目錄下面的/tmp會變大;因為根目錄空間不是很大,只有30個G左右;壓縮過程中會撐爆/tmp目錄;查資料發現在使用tar壓縮時,會把xtrabackup_logfile文件寫到MySQL的tmpdir指定的目錄中;如果修改tmpdir目錄就需要重啟MySQL服務了,有點得不償失,最終選擇了--stream=xbstream的方式壓縮。

2、qpress安裝

wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar -xf qpress-11-linux-x64.tar
cp -a qpress /usr/bin/

3、備份命令

# 備份命令
innobackupex --defaults-file=/usr/my.cnf -ubakuser -p'密碼'  --stream=xbstream  --parallel=8  --compress --compress-threads=8 /tmp 2>>$logdir/backup$time.log > $backupdir/backup_full`date +%Y-%m-%d`.xbstream

# 參數說明
# --compress: 參數表示使用壓縮
# --compress-threads:表示使用幾個線程壓縮

4、恢復備份步驟

xbstream恢復文件

xbstream -x -C bak/ < backup_full2020-12-09.xbstream

#解壓文件,-C參數指定解壓后的文件目錄

 

在xtrabackup2.1.4之前需要使用qpress命令,逐個解壓每一個文件。

【下面使用了for循環解壓,在每個庫目錄中都要解壓對應的表】

[root@test1 marketdata]# for fp in `find ./ -iname "*\.qp"`; do  qpress -d $fp $(dirname $fp) && rm -f $fp; done
[root@test1 marketdata]# ls
asset_class_map.frm     bbg_holding_revenue.frm  bbg_top_holding.frm               fund_branding.ibd    fund_similarity.ibd       mstar_company_name.ibd              mstar_rating.ibd         tb1.ibd
asset_class_map.ibd     bbg_holding_revenue.ibd  bbg_top_holding.ibd               fund_charge.frm      mstar_broad_category.frm  mstar_fund_name.frm                 mstar_top_holding.frm    ticker_map.frm
bbg_company_name.frm    bbg_region_map.frm       db.opt                            fund_charge.ibd      mstar_broad_category.ibd  mstar_fund_name.ibd                 mstar_top_holding.ibd    ticker_map.ibd
bbg_company_name.ibd    bbg_region_map.ibd       fnz_fund_performance.frm          fund_commentary.frm  mstar_category.frm        mstar_fund_performance.frm          mutual_fund.frm
bbg_fund_geo_focus.frm  bbg_revenue_map.frm      fnz_fund_performance_history.frm  fund_commentary.ibd  mstar_category.ibd        mstar_fund_performance_history.frm  mutual_fund.ibd
bbg_fund_geo_focus.ibd  bbg_revenue_map.ibd      fnz_fund_performance_history.ibd  fund_fact_sheet.frm  mstar_company_info.frm    mstar_fund_performance_history.ibd  sub_asset_class_map.frm
bbg_fund_name.frm       bbg_ticker.frm           fnz_fund_performance.ibd          fund_fact_sheet.ibd  mstar_company_info.ibd    mstar_fund_performance.ibd          sub_asset_class_map.ibd
bbg_fund_name.ibd       bbg_ticker.ibd           fund_branding.frm                 fund_similarity.frm  mstar_company_name.frm    mstar_rating.frm                    tb1.frm
[root@test1 marketdata]#

在xtrabackup2.1.4之后可以使用decompress參數解壓

在xtrabackup2.1.4之后可以使用decompress參數解壓,但是前提是需要系統中安裝了qpress命令。

innobackupex --decompress --parallel=6 --compress-threads=6 bak/         #解壓命令
xtrabackup: recognized server arguments: 
xtrabackup: recognized client arguments: 
191230 10:40:11 innobackupex: Starting the decrypt and decompress operation

IMPORTANT: Please check that the decrypt and decompress run completes successfully.
           At the end of a successful decrypt and decompress run innobackupex
           prints "completed OK!".

innobackupex version 2.4.13 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3e7ca7c)
191230 10:40:11 [01] decompressing ./dict_tree_info.ibd.qp
191230 10:40:11 [01] decompressing ./db.opt.qp
191230 10:40:11 [01] decompressing ./dict_tree_info.frm.qp
191230 10:40:11 completed OK!                                             #這里說明解壓完成   
[root@test1 backup]# cd cmdb
[root@test1 cmdb]# ls                                                     #原文件和解壓之后的文件是並存的,在恢復的時候需要刪除原壓縮文件
db.opt  db.opt.qp  dict_tree_info.frm  dict_tree_info.frm.qp  dict_tree_info.ibd  dict_tree_info.ibd.qp

# 可以批量刪除qp文件 [root@test1 cmdb]# for f in `find ./ -iname "*\.qp"`; do echo $f && rm -f $f; done

備份文件每個庫要執行解壓,比較麻煩,可以寫成腳本的形式:

第一步准備:prepare階段
[root@test1 backup]# innobackupex --apply-log bak/             #結果出現complete ok表示完成

第二步: --copy-back,主要操作就是拷貝,可以直接使用cp拷貝

 

 

 

 

 

 參考

xtrabackup備份之xbstream壓縮 - 碼農教程
http://www.manongjc.com/detail/14-yrdlrdjfqsepugn.html

percona xtrabackup使用xbstream進行流式備份恢復-運維愛好者-51CTO博客
https://blog.51cto.com/gaoquan/1737053

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM