一、MySQL備份方式與備份類型
1.備份的必要性
再生產環境中,為了防止硬件故障、軟件故障、自然災害、誤操作等各種原因導致的數據庫數據丟失后能恢復到事故之前的狀態,我們需要對數據庫進行備份和恢復操作。數據庫的備份和恢復是非常重要的工作,數據的備份不是最終目的,數據的恢復才是。
備份時應該注意的事項:
1.最多能容忍多少數據丟失;
2.恢復數據需要在多長時間內完成;
3.需要恢復那些數據;
4.定期測試備份的可用性並提高恢復操作的效率;
5.備份時的服務器負載;
6.鎖定資源的時長;
2.備份的類型
a.按照備份的數據集的范圍分類:
完全備份:整個數據集;
部分備份:數據集的一部分,比如部分表;
b.按照數據的變化分類;
完全備份:將整個范圍備份;
增量備份:僅備份自上一次完全備份或增量備份以來變量的那部數據;
差異備份:僅備份自上一次完全備份以來變量的那部數據;
c.按照操作對象分類;
物理備份:直接從磁盤復制數據文件進行備份;
邏輯備份:從數據庫導出數據另存在一個或多個文件中,將數據轉為具體的SQL語句;
d.按照數據服務備份時的運行狀態分類;
熱備:讀寫操作均可進行的狀態下所做的備份;
溫備:可讀但不可寫狀態下進行的備份;
冷備:讀寫操作均不可進行的狀態下所做的備份;
3.備份策略
備份策略一般都是全量+差異+binlogs或者全量+增量+binlogs。需要注意到的是,如果需要更完整的備份數據,還需要依靠binlogs(二進制日志)。binlogs是MySQL中最重要的日志之一,它記錄了所有的DDL和DML(除了數據查詢語句)語句,以事件形式記錄。這里強烈建議在生產環境中,將數據與二進制日志分開存放並對二進制日志也做備份。
二、MySQL備份工具
1.mysqldump:mysql服務自帶的備份工具。mysqldump是一個邏輯備份工具,它的本質是將數據庫轉為可執行SQL腳本。可以用來做完全備份和部分備份,支持InnoDB存儲引擎的熱備功能,MyISAM存儲引擎的溫備功能。
2.系統自帶的cp/tar工具:這是一種物理備份,這種備份的原理是基於快照實現的,快照(請求一個全局鎖),之后立即釋放鎖,達到幾乎熱備的效果。需要注意的是不能僅僅只備份數據,要同時備份事務日志,並且要求數據和日志在同一邏輯卷。
3.xtrabackup:由Percona開發的很強大的開源工具,支持對InnoDB做熱備,物理備份工具。在下篇博客將具體介紹此工具並做實際演示。