xtrabackup 官方原理
在InnoDB內部會維護一個redo日志文件,我們也可以叫做事務日志文件,事務日志文件會存儲每一個InnoDB表數據的更改記錄。當InnoDB啟動時,InnoDB會檢查數據文件和事務日志,并執行兩個步驟:1.應用已經提交的事務日志到數據文件;2.將事務日志里還未提交的更改回滾。
xtrabackup在啟動時會記住 log sequence number(LSN,每條事務記錄的唯一編號),并且復制所有的數據文件,復制過程需要一段時間,所以這段時間數據庫的更改就會使備份文件和實際數據不一致。xtrabackup解決此問題的方式是,xtrabackup會開啟一個后臺進程,用于監視事務日志,并將備份期間事務日志里的更改記錄下來。
以上是xtrabackup備份的過程,回復的第一步是準備(prepare)過程。在此過程,xtrabackup根據所記錄的 事務日志里的變化,模仿InnoDB啟動時的動作對數據進行‘崩潰恢復’,執行完這個過程后,數據就可以用于還原數據庫了。
但是以上機制只能備份和恢復Innodb引擎的表,對于myisam表,precona 將xtrabackup通過perl封裝成innobackupex腳本,此腳本提供了對myisam表的備份支持。innobackupex腳本會在xtrabackup執行完InnoDB表的備份后,執行flush tables with read lock 來阻止對數據庫的寫入,并對myisam相關文件進行備份,最后釋放鎖。
轉載于:https://blog.51cto.com/kaifly/1589624
總結
以上是生活随笔為你收集整理的xtrabackup 官方原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球首个十万吨级甲醇工厂在安阳投产:吉利
- 下一篇: 王者荣耀客服怎么找 王者荣耀联系客服途径