Xtrabackup介紹與原理

2021-10-07 05:07:05 字數 1575 閱讀 7737

一、xtrabackup介紹

mysql冷備、mysqldump、mysql熱拷貝都無法實現對資料庫進行增量備份。在實際生產環境中增量備份是非常實用的,如果資料大於50g或100g,儲存空間足夠的情況下,可以每天進行完整備份,如果每天產生的資料量較大,需要定製資料備份策略。例如每週實用完整備份,周一到週六實用增量備份。而percona-xtrabackup就是為了實現增量備份而出現的一款主流備份工具,xtrabakackup有2個工具,分別是xtrabakup、innobakupe。

percona-xtrabackup是 percona公司開發的乙個用於mysql資料庫物理熱備的備份工具,支援mysql、percona server和mariadb,開源免費,是目前較為受歡迎的主流備份工具。xtrabackup只能備份innodb和xtradb兩種資料引擎的表,而不能備份myisam資料表。

二、xtrabackup優點

(1)備份速度快,物理備份可靠

(2)備份過程不會打斷正在執行的事務(無需鎖表)

(3)能夠基於壓縮等功能節約磁碟空間和流量

(4)自動備份校驗

(5)還原速度快

(6)可以流傳將備份傳輸到另外一台機器上

(7)在不增加伺服器負載的情況備份資料

三、xtrabackup備份原理

xtrabackup備份流程圖:

(1)innobackupex啟動後,會先fork乙個程序,用於啟動xtrabackup,然後等待xtrabackup備份ibd資料檔案;

(2)xtrabackup在備份innodb資料是,有2種執行緒:redo拷貝執行緒和ibd資料拷貝執行緒。xtrabackup程序開始執行後,會啟動乙個redo拷貝的執行緒,用於從最新的checkpoint點開始順序拷貝redo.log;再啟動ibd資料拷貝執行緒,進行拷貝ibd資料。這裡是先啟動redo拷貝執行緒的。在此階段,innobackupex進行處於等待狀態(等待檔案被建立)

(4)xtrabackup拷貝完成ibd資料檔案後,會通知innobackupex(通過建立檔案),同時xtrabackup進入等待狀態(redo執行緒依舊在拷貝redo.log)

(5)innobackupex收到xtrabackup通知後哦,執行flush tables with read lock(ftwrl),取得一致性位點,然後開始備份非innodb檔案(如frm、myd、myi、csv、opt、par等格式的檔案),在拷貝非innodb檔案的過程當中,資料庫處於全域性唯讀狀態。

(6)當innobackup拷貝完所有的非innodb檔案後,會通知xtrabackup,通知完成後,進入等待狀態;

(7)xtrabackup收到innobackupex備份完成的通知後,會停止redo拷貝執行緒,然後通知innobackupex,redo.log檔案拷貝完成;

(8)innobackupex收到redo.log備份完成後,就進行解鎖操作,執行:unlock tables;

(9)最後innbackupex和xtrabackup程序各自釋放資源,寫備份元資料資訊等,innobackupex等xtrabackup子程序結束後退出。

XtraBackup的備份原理與應用示例

innodb儲存引擎是基於表空間 table space 進行儲存的,表空間中被分成多個塊 盤區 將資料分散儲存至這些盤區中,每個盤區都有自己的編號,每當資料修改一次,日誌序列號就增加1。在完全備份時,是將所有的盤區進行一次物理備份,而增量備份則是根據被修改的盤區號所導致的epoch變化選擇性備份相...

xtrabackup與mysqldump對比測試

環境描述及結果展示 mysql版本 5.1.43 xtrabackup 版本 xtrabackup version2.0.8 主機記憶體 64g cpus 24 innodb buffer pool 200m 資料量 9083m 資料檔案總大小 9947m 結果對比 xtrabackup xtrab...

xtrabackup的介紹和使用

xtrabackup是第三方的mysql熱備工具 這裡能找到你想要的xtrabackup版本 安裝xtrabackup tar zxvf p ercona xtrabackup 2.0.1 446.tar.gz cd percona xtrabackup 2.0.1 value alias serv...