2、MySQL备份类型
備份是以防萬一的一種必要手段,在出現(xiàn)硬件損壞或非人為的因素而導致數(shù)據(jù)丟失時,可以使用備份恢復數(shù)據(jù),以將損失降低到最小程度,因此備份是必須的。備份可以分為以下幾個類型。
根據(jù)備份的方法(是否需要數(shù)據(jù)庫離線)可以將備份分為:
- 熱備(Hot Backup)
- 冷備(Cold Backup)
- 溫備(Warm Backup)
熱備份可以在數(shù)據(jù)庫運行中直接備份,對正在運行的數(shù)據(jù)庫操作沒有任何的影響,數(shù)據(jù)庫的讀寫操作可以正常執(zhí)行。這種方式在 MySQL 官方手冊中稱為 Online Backup(在線備份)。
冷備份必須在數(shù)據(jù)庫停止的情況下進行備份,數(shù)據(jù)庫的讀寫操作不能執(zhí)行。這種備份最為簡單,一般只需要復制相關(guān)的數(shù)據(jù)庫物理文件即可。這種方式在 MySQL 官方手冊中稱為 Offline Backup(離線備份)。
溫備份同樣是在數(shù)據(jù)庫運行中進行的,但是會對當前數(shù)據(jù)庫的操作有所影響,備份時僅支持讀操作,不支持寫操作。
按照備份后文件的內(nèi)容,熱備份又可以分為:
- 邏輯備份
- 裸文件備份
在 MySQL 數(shù)據(jù)庫中,邏輯備份是指備份出的文件內(nèi)容是可讀的,一般是文本內(nèi)容。內(nèi)容一般是由一條條 SQL 語句,或者是表內(nèi)實際數(shù)據(jù)組成。如 mysqldump 和 SELECT * INTO OUTFILE 的方法。這類方法的好處是可以觀察導出文件的內(nèi)容,一般適用于數(shù)據(jù)庫的升級、遷移等工作。但其缺點是恢復的時間較長。
裸文件備份是指復制數(shù)據(jù)庫的物理文件,既可以在數(shù)據(jù)庫運行中進行復制(如 ibbackup、xtrabackup 這類工具),也可以在數(shù)據(jù)庫停止運行時直接復制數(shù)據(jù)文件。這類備份的恢復時間往往比邏輯備份短很多。
按照備份數(shù)據(jù)庫的內(nèi)容來分,備份又可以分為:
- 完全備份
- 部分備份
完全備份是指對數(shù)據(jù)庫進行一個完整的備份,即備份整個數(shù)據(jù)庫,如果數(shù)據(jù)較多會占用較大的時間和空間。
部分備份是指備份部分數(shù)據(jù)庫(例如,只備份一個表)。
部分備份又分為:
- 增量備份
- 差異備份
增量備份需要使用專業(yè)的備份工具。指的是在上次完全備份的基礎上,對更改的數(shù)據(jù)進行備份。也就是說每次備份只會備份自上次備份之后到備份時間之內(nèi)產(chǎn)生的數(shù)據(jù)。因此每次備份都比差異備份節(jié)約空間,但是恢復數(shù)據(jù)麻煩。
差異備份指的是自上一次完全備份以來變化的數(shù)據(jù)。和增量備份相比,浪費空間,但恢復數(shù)據(jù)比增量備份簡單。
MySQL 中進行不同方式的備份還要考慮存儲引擎是否支持,如 MyISAM 不支持熱備,支持溫備和冷備。而 InnoDB 支持熱備、溫備和冷備。
一般情況下,我們需要備份的數(shù)據(jù)分為以下幾種:
- 表數(shù)據(jù)
- 二進制日志、InnoDB 事務日志
- 代碼(存儲過程、存儲函數(shù)、觸發(fā)器、事件調(diào)度器)
- 服務器配置文件
下面是幾種常用的備份工具:
- mysqldump:邏輯備份工具,適用于所有的存儲引擎,支持溫備、完全備份、部分備份、對于 InnoDB 存儲引擎支持熱備。
- cp、tar 等歸檔復制工具:物理備份工具,適用于所有的存儲引擎、冷備、完全備份、部分備份。
- lvm2 snapshot:借助文件系統(tǒng)管理工具進行備份。
- mysqlhotcopy:名不副實的一個工具,僅支持 MyISAM 存儲引擎。
- xtrabackup:一款由 percona 提供的非常強大的 InnoDB/XtraDB 熱備工具,支持完全備份、增量備份。
總結(jié)
以上是生活随笔為你收集整理的2、MySQL备份类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1、数据库为什么需要备份?
- 下一篇: 5、MySQL热备份及恢复