1. 程式人生 > 其它 >MySQL備份型別

MySQL備份型別

備份是以防萬一的一種必要手段,在出現硬體損壞或非人為的因素而導致資料丟失時,可以使用備份恢復資料,以將損失降低到最小程度,因此備份是必須的。備份可以分為以下幾個型別。

根據備份的方法(是否需要資料庫離線)可以將備份分為:

  • 熱備(Hot Backup)
  • 冷備(Cold Backup)
  • 溫備(Warm Backup)


熱備份可以在資料庫執行中直接備份,對正在執行的資料庫操作沒有任何的影響,資料庫的讀寫操作可以正常執行。這種方式在 MySQL 官方手冊中稱為 Online Backup(線上備份)。

冷備份必須在資料庫停止的情況下進行備份,資料庫的讀寫操作不能執行。這種備份最為簡單,一般只需要複製相關的資料庫物理檔案即可。這種方式在 MySQL 官方手冊中稱為 Offline Backup(離線備份)。

溫備份同樣是在資料庫執行中進行的,但是會對當前資料庫的操作有所影響,備份時僅支援讀操作,不支援寫操作。

按照備份後文件的內容,熱備份又可以分為:

  • 邏輯備份
  • 裸檔案備份


在 MySQL 資料庫中,邏輯備份是指備份出的檔案內容是可讀的,一般是文字內容。內容一般是由一條條 SQL 語句,或者是表內實際資料組成。如 mysqldump 和 SELECT * INTO OUTFILE 的方法。這類方法的好處是可以觀察匯出檔案的內容,一般適用於資料庫的升級、遷移等工作。但其缺點是恢復的時間較長。

裸檔案備份是指複製資料庫的物理檔案,既可以在資料庫執行中進行復制(如 ibbackup、xtrabackup 這類工具),也可以在資料庫停止執行時直接複製資料檔案。這類備份的恢復時間往往比邏輯備份短很多。

按照備份資料庫的內容來分,備份又可以分為:

  • 完全備份
  • 部分備份


完全備份是指對資料庫進行一個完整的備份,即備份整個資料庫,如果資料較多會佔用較大的時間和空間。

部分備份是指備份部分資料庫(例如,只備份一個表)。

部分備份又分為:

  • 增量備份
  • 差異備份


增量備份需要使用專業的備份工具。指的是在上次完全備份的基礎上,對更改的資料進行備份。也就是說每次備份只會備份自上次備份之後到備份時間之內產生的資料。因此每次備份都比差異備份節約空間,但是恢復資料麻煩。

差異備份指的是自上一次完全備份以來變化的資料。和增量備份相比,浪費空間,但恢復資料比增量備份簡單。

MySQL 中進行不同方式的備份還要考慮儲存引擎是否支援,如 MyISAM 不支援熱備,支援溫備和冷備。而 InnoDB 支援熱備、溫備和冷備



一般情況下,我們需要備份的資料分為以下幾種:

  • 表資料
  • 二進位制日誌、InnoDB 事務日誌
  • 程式碼(儲存過程、儲存函式、觸發器、事件排程器)
  • 伺服器配置檔案


下面是幾種常用的備份工具:

    • mysqldump:邏輯備份工具,適用於所有的儲存引擎,支援溫備、完全備份、部分備份、對於 InnoDB 儲存引擎支援熱備。
    • cp、tar 等歸檔複製工具:物理備份工具,適用於所有的儲存引擎、冷備、完全備份、部分備份。
    • lvm2 snapshot:藉助檔案系統管理工具進行備份。
    • mysqlhotcopy:名不副實的一個工具,僅支援 MyISAM 儲存引擎。
    • xtrabackup:一款由 percona 提供的非常強大的 InnoDB/XtraDB 熱備工具,支援完全備份、增量備份。
  • ref:備份