初探MySQL資料備份及備份原理

2021-09-10 10:36:23 字數 1534 閱讀 4221

根據需求的不同,資料備份的方式也不同,mysql官方給定的備份方式有三種,分別是冷備、熱備和溫備;如果以備份的資料集為劃分標準,那麼可劃分為完全備份和部分備份;如果是以備份時的介面為劃分標準,那麼可分為物理備份、邏輯備份、完全備份、增量備份和差異備份。

後面兩種備份的分類方式比較容易理解,下面我們著重介紹一下冷備、熱備和溫備。

資料、配置檔案、**(儲存過程、儲存函式、觸發器)、os相關的配置檔案、複製相關的配置以及二進位制日誌都是我們要備份的物件。那麼問題來了,如何來備份上述這些呢?我們以檔案系統快照(lvm)、邏輯備份工具mysqldump、mydumper以及物理備份工具xtrabackup這四種方案為例,剖析一下mysql資料備份的原理。

快照備份

快照備份是我們上文提到的熱備份的一種,通過檔案系統支援的快照功能對資料庫進行備份。在mysql中使用快照備份只需將資料檔案、日誌檔案都放在乙個邏輯卷中,並對該邏輯卷快照備份。快照備份傾向於防範誤操作,一旦操作失誤,就可以利用快照恢復到之前的時間點,不過,因為快照只能是在本地,如果磁碟損壞,那麼快照也就損壞,備份也就消失了。

mysqldump是mysql自帶的備份工具,通過create table、drop table和insert into 等sql語句,將資料庫中的資料匯出成.sql檔案。由於mysqldump依賴資料庫層的轉換,並不關心底層的儲存引擎,所以適用範圍更廣泛,並且可以在不同mysql版本之間切換。也同樣是因為此,mysqldump生成的備份檔案很大、速度較慢,且在備份過程中對資料庫的訪問有較大的影響,不適用於資料量大、業務壓力高的例項。

mydumper

mydumper與mysqldump的原理類似,但其有乙個特點就是可以採用多執行緒並行備份,大大提高了資料匯出的速度。該工具由mysql、facebook、skysql公司的開發人員一起開發維護,由輕量級c語言開發。據說,執行速度比mysqldump快10倍,支援事務和非事務表的一致性備份、匯出binlog、多執行緒備份、以守護程序的形式工作,定時備份等等。

xtrabackup可能是現在最為廣泛的備份方式,它是 percona 公司開發的乙個用於 mysql 資料庫物理熱備的備份工具,支援 mysql(oracle)、percona server 和 mariadb,並且全部開源。因為xtrabackup是物理備份,所以其是靠拷貝資料庫檔案和日誌來完成備份,速度更快,其中最主要的工具集是 innobackupex(備份innodb表) 和 xtrabackup(備份非innodb表),前者是乙個 perl 指令碼,後者是 c/c++ 編譯的二進位制。

MySQL備份及資料恢復

昨天mysql意外掛程式了,重啟不成功。然後悲劇的發現,之前做的磁碟快照規則也不知怎麼沒有生效,資料無備份。後來諮詢 搜尋,結果 1 可以配置兩個引數,忽略檢查,啟動,可以讀資料。然後匯出,刪除檔案庫檔案,重建資料庫,匯入資料 innodb force recovery 6innodb purge ...

mysql binlog備份初探

備份mysql的binlog檔案,可以配合分庫或全庫的備份檔案實現基於時間點的資料恢復.在工作過程中,遇到兩種情況 1.不執行flush logs命令 缺點 對於不進行頻繁寫入和更新的業務,備份後,浪費磁碟空間.優點 對於一天只生成乙個binlog檔案的業務,恢復資料比較容易,只需要解壓乙個binl...

Mysql大資料備份和增量備份及還原

目前主流的有兩個工具可以實現物理熱備 ibbackup和xtrabackup ibbackup是需要授權 昂貴,而xtrabackup功能比ibbackup強大而且是開源的xtrabackup提供了兩種命令列工具 xtrabackup 專用於備份innodb和xtradb引擎的資料 innoback...