您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql中XtraBackup備份講義,其所涉及的東西,從理論知識來獲悉,有很多書籍、文獻可供大家參考,從現實意義角度出發,億速云累計多年的實踐經驗可分享給大家。
mysql中的XtraBackup的備份原理
xtrabackup的官方下載地址為 :
http://www.percona.com/software/percona-xtrabackup。
xtrabackup包含兩個主要的工具,即xtrabackup和innobackupex,二者區別如下:
1 xtrabackup只能備份innodb和xtradb兩種引擎的表,而不能備份myisam引擎的表
2 innobackupex是一個封裝了xtrabackup的Perl腳本,支持同時備份innodb和myisam,但在對myisam備份時需要加一個全局的讀鎖。還有就是myisam不支持增量備份。
innobackupex工具的備份過程原理圖
如圖,備份開始的時候
1 首先會啟動一個xtrabackup_log后臺檢測的進程,實時檢測mysql redo的變化,一旦發現redo有新的日志寫入,立刻將日志寫入到日志文件xtrabackup_log中 2 復制innodb的數據文件和系統表空間文件idbdata1到對應的以默認時間戳為備份目錄的地方 3 復制結束后,執行flush table with read lock操作 4 復制.frm .myd .myi文件 5 并且在這一時刻獲得binary log 的位置 6 將表進行解鎖unlock tables 7 停止xtrabackup_log進程 全庫恢復的過程 這一階段會啟動xtrabackup內嵌的innodb實例,將xtrabackup日志xtrabackup_Log進行回放,將提交的事務信息變更應用到innodb數據或表空間,同時回滾未提交的事務
增量備份
增量備份主要是通過拷貝innodb中有變更的頁(指的是LSN大于xtrabackup_checkpoints中的LSN號)。增量備份是基于全備的,第一次增量備份的數據是基于上一次全備,之后的每一次增倍都是基于上一次的增倍,最終達到一致性的增倍,增倍的過程中,和全備很類似,區別在于第二步
增量備份的恢復
和全庫恢復類似,也需要兩步
1 數據文件的恢復 分3部分 全備 增量備份和xtrabackup_log
2 對未提交事務的回滾
innobackupex的使用案例
1 創建備份用戶
進行數據庫全備
使用以下參數進行全庫備份
查看對應生成的文件
需要注意的幾個文件
刪掉某個數據庫,進行全庫恢復
關閉數據庫
恢復
以上對應的目錄就是innobackupex全備份自己創建的目錄
更改權限
[root@MASTER_03 tmp]# chown -R mysql.mysql /data/3306/data/
啟動mysqld
[root@MASTER_03 tmp]# /etc/init.d/mysqld start
發現數據是已經成功恢復
先全備
增量備份
此時再插入數據
增量備份2
增量備份的恢復
增量備份的恢復需要有3個步驟
1 恢復完全備份
2 恢復增量備份到完全備份(開始恢復的增量備份要添加--redo-only參數,到最后一次增量備份要去掉--redo-only)
3 對整體的完全備份進行恢復,回滾未提交的數據
模擬測試
測試完畢,恢復還是比較簡單的。
看了以上mysql中XtraBackup備份講義介紹,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,大家可以繼續關注億速云行業資訊板塊,會定期給大家更新行業新聞和知識,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。