初探MySQL資料備份及備份原理
相信通過上一篇文章《資料丟失如當頭棒喝,資料備份重如山!》,很多人對於資料備份的重要性有了深刻的認識,本文將以MySQL為例帶大家進一步瞭解資料備份的原理和初步實踐。
根據需求的不同,資料備份的方式也不同,MySQL官方給定的備份方式有三種,分別是冷備、熱備和溫備;如果以備份的資料集為劃分標準,那麼可劃分為完全備份和部分備份;如果是以備份時的介面為劃分標準,那麼可分為物理備份、邏輯備份、完全備份、增量備份和差異備份。
後面兩種備份的分類方式比較容易理解,下面我們著重介紹一下冷備、熱備和溫備。
-
冷備:簡單來說,就是資料必須下線後備份。在備份之前,停止MySQL例項的執行,並且在整個備份過程中,使用者都無法訪問資料庫。
-
熱備:簡單來說,就是資料不離線,讀寫可以正常進行,MySQL例項始終處於執行狀態。
-
溫備:簡單來說,就是全域性施加共享鎖,只能讀,不能寫。在備份過程中,MySQL例項雖然仍是執行的,但是不能進行更新或修改等操作。
資料、配置檔案、程式碼(儲存過程、儲存函式、觸發器)、os相關的配置檔案、複製相關的配置以及二進位制日誌都是我們要備份的物件。那麼問題來了,如何來備份上述這些呢?我們以檔案系統快照(LVM)、邏輯備份工具Mysqldump、Mydumper以及物理備份工具Xtrabackup這四種方案為例,剖析一下MySQL資料備份的原理。
快照備份
快照備份是我們上文提到的熱備份的一種,通過檔案系統支援的快照功能對資料庫進行備份。在MySQL中使用快照備份只需將資料檔案、日誌檔案都放在一個邏輯卷中,並對該邏輯卷快照備份。快照備份傾向於防範誤操作,一旦操作失誤,就可以利用快照恢復到之前的時間點,不過,因為快照只能是在本地,如果磁碟損壞,那麼快照也就損壞,備份也就消失了。
圖源網路
Mysqldump
Mysqldump是MySQL自帶的備份工具,通過create table、drop table和insert into 等SQL語句,將資料庫中的資料匯出成.sql檔案。由於Mysqldump依賴資料庫層的轉換,並不關心底層的儲存引擎,所以適用範圍更廣泛,並且可以在不同MySQL版本之間切換。也同樣是因為此,Mysqldump生成的備份檔案很大、速度較慢,且在備份過程中對資料庫的訪問有較大的影響,不適用於資料量大、業務壓力高的例項。
Mydumper
Mydumper與Mysqldump的原理類似,但其有一個特點就是可以採用多執行緒並行備份,大大提高了資料匯出的速度。該工具由MySQL、Facebook、skysql公司的開發人員一起開發維護,由輕量級C語言開發。據說,執行速度比mysqldump快10倍,支援事務和非事務表的一致性備份、匯出binlog、多執行緒備份、以守護程式的形式工作,定時備份等等。
圖源網路
XtraBackup
XtraBackup可能是現在最為廣泛的備份方式,它是 Percona 公司開發的一個用於 MySQL 資料庫物理熱備的備份工具,支援 MySQl(Oracle)、Percona Server 和 MariaDB,並且全部開源。因為XtraBackup是物理備份,所以其是靠拷貝資料庫檔案和日誌來完成備份,速度更快,其中最主要的工具集是 innobackupex(備份InnoDB表) 和 xtrabackup(備份非InnoDB表),前者是一個 perl 指令碼,後者是 C/C++ 編譯的二進位制。
圖源網路
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2213616/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql資料備份MySql
- MySQL · 物理備份 · Percona XtraBackup 備份原理MySql
- 【Mysql】xtrabacupk備份原理MySql
- mysql 資料庫 備份MySql資料庫
- Mysql資料安全備份MySql
- mysql 資料庫備份MySql資料庫
- oracle聯機熱備份的原理,及rman增量備份原理Oracle
- Oracle聯機熱備份的原理及rman增量備份原理Oracle
- 資料備份≠容災備份
- oracle聯機熱備份的原理及rman增量備份原理(zt)Oracle
- 使用innobackupex線上增量備份和再增量備份及恢復mysql資料庫MySql資料庫
- MySQL 分割槽表原理及資料備份轉移實戰薦MySql
- innobackupex 備份MySQL資料庫MySql資料庫
- mysql 備份資料庫 mysqldumpMySql資料庫
- MySQL備份mydumper的原理【轉】MySql
- mysql之 xtrabackup原理、備份日誌分析、備份資訊獲取MySql
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL資料庫的基本備份MySql資料庫
- 1. 備份MySQL資料庫MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- Mysql資料備份與恢復MySql
- Mysql資料備份和還原MySql
- 備份mysql資料庫報告MySql資料庫
- 配置xtrabackup備份mysql資料庫MySql資料庫
- 使用innobackupex備份mysql資料庫MySql資料庫
- 使用Xtrabackup備份mysql資料庫MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- XtraBackup完整備份與增量備份的原理
- mysql的冷備份與熱備份MySql
- Mysql備份系列(3)--innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- 熱備份原理
- RMAN備份原理
- oracle資料庫備份之exp增量備份Oracle資料庫
- Oracle備份及備份策略及基於Linux下 Oracle 備份策略(RMAN)OracleLinux
- Mysql備份與恢復(1)---物理備份MySql
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- Oracle資料庫的冷備份及冷備份異地恢復方法Oracle資料庫