Xtrabackup流備份,增量和壓縮小結

來源:互聯網
上載者:User

Xtrabackup流備份,增量和壓縮小結

【問題背景】

1、  針對MySQL檔案比較大,需要壓縮的資料庫。 如500G資料庫,xtrabackup備份後檔案為500G,備份完成後再壓縮打包,相當於檔案讀寫3次。

2、  對於磁碟IO不好的從庫,整個過程會持續好幾個小時,有時把IO直接搞到100%, 導致從庫延時很大。

3、  xtrabackup的xbstream流備份,直接備份後,通過管道直接壓縮,這樣把原約3次的IO,減少為一次,整個使用時間也變短了。

【適合使用情境】

1、  資料庫檔案比較大,要壓縮的庫;導致整個備份時間長,且要求從庫延遲不能太大的庫。

【線上使用樣本】

主站有一組機器已測試通過,簡單對比:

1、  xtrabackup全量備份,不壓縮,直接tar包170G, 用時80分鐘; xtrabackup流備份+libz2壓縮,檔案大小46G, 用時40分鐘。

2、  備份過程中兩個的IO util對比:

常規備份,不壓縮:

Xbstream備份+壓縮

【基本使用原理】

1 備份步驟

由於xbstream+壓縮備份後,無備份目錄,xtrabackup可指定--extra-lsndir目錄,此目錄只存放此次備份的xtrabackup_checkpoints檔案;後面的增量備份時,--incremental-basedir就指向前一日的extra-lsndir目錄便可。

1)  全量備份命令:

innobackupex --user=dump  --password=xxx  --host=127.0.0.1  --slave-info --stream=xbstream --extra-lsndir="$lsndir"  $baseDir 2>>"$backupLog" | lbzip2 -kv -n 10 > "$backup_file" 2>>"$backupLog"

2) 增量備份命令:

innobackupex --user=dump  --password=xxx  --host=127.0.0.1  --slave-info --stream=xbstream --extra-lsndir="$lsndir"  --incremental  --incremental-basedir="$last_lsndir"  $baseDir 2>>"$backupLog" | lbzip2 -kv -n 10 > "$backup_file" 2>>"$backupLog"

2、  還原步驟

備份後產生的為壓縮了的檔案,所以要解壓,再用xbstream開啟流體檔案(較之原來還原,多了此步驟)。

1)  解壓壓縮的檔案:lbzip2 -dkv -n 10 2013-07-14_bak_full.bz2

2)  解壓液體檔案為目錄: xbstream -x < 2013-07-14_bak_full -C /work/bak/2013-07-14_full/

後面步驟和原來的還原步驟相同。

MySQL管理之使用XtraBackup進行熱備

MySQL開源備份工具Xtrabackup備份部署

MySQL Xtrabackup備份和恢複

用XtraBackup實現MySQL的主從複製快速部署【主不鎖表】

安裝和使用 Percona 推出的 Xtrabackup 備份 MySQL

XtraBackup 的詳細介紹:請點這裡
XtraBackup 的:請點這裡

本文永久更新連結地址:

相關關鍵詞:
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.