备份MySQL数据库
學會用各種姿勢備份MySQL數據庫
提交我的留言加載中已留言
目錄
前言
為什么需要備份數據?
數據的備份類型
MySQL備份數據的方式
備份需要考慮的問題
設計合適的備份策略
總結
前言
我們試著想一想, 在生產環境中什么最重要?如果我們服務器的硬件壞了可以維修或者換新, 軟件問題可以修復或重新安裝, 但是如果數據沒了呢?這可能是最恐怖的事情了吧, ?我感覺在生產環境中應該沒有什么比數據更為重要. 那么我們該如何保證數據不丟失、或者丟失后可以快速恢復呢?只要看完這篇, 大家應該就能對MySQL中實現數據備份和恢復能有一定的了解。
為什么需要備份數據?
其實在前言中也大概說明了為什么要備份數據, 但是我們還是應該具體了解一下為什么要備份數據
在生產環境中我們數據庫可能會遭遇各種各樣的不測從而導致數據丟失, 大概分為以下幾種.
硬件故障
軟件故障
自然災害
黑客攻擊
誤操作 (占比最大)
所以, 為了在數據丟失之后能夠恢復數據, 我們就需要定期的備份數據, 備份數據的策略要根據不同的應用場景進行定制, 大致有幾個參考數值, 我們可以根據這些數值從而定制符合特定環境中的數據備份策略
能夠容忍丟失多少數據
恢復數據需要多長時間
需要恢復哪一些數據
數據的備份類型
數據的備份類型根據其自身的特性主要分為以下幾組
完全備份
部分備份
完全備份指的是備份整個數據集( 即整個數據庫 )、部分備份指的是備份部分數據集(例如: 只備份一個表)
而部分備份又分為以下兩種
增量備份
差異備份
增量備份指的是備份自上一次備份以來(增量或完全)以來變化的數據; 特點: 節約空間、還原麻煩
差異備份指的是備份自上一次完全備份以來變化的數據 特點: 浪費空間、還原比增量備份簡單
示意圖
MySQL備份數據的方式
在MySQl中我們備份數據一般有幾種方式
熱備份
溫備份
冷備份
熱備份指的是當數據庫進行備份時, 數據庫的讀寫操作均不是受影響
溫備份指的是當數據庫進行備份時, 數據庫的讀操作可以執行, 但是不能執行寫操作
冷備份指的是當數據庫進行備份時, 數據庫不能進行讀寫操作, 即數據庫要下線
MySQL中進行不同方式的備份還要考慮存儲引擎是否支持
MyISAM
[ ] 熱備
[x] 溫備
[x] 冷備
InnoDB
[x] 熱備
[x] 溫備
[x] 冷備
我們在考慮完數據在備份時, 數據庫的運行狀態之后還需要考慮對于MySQL數據庫中數據的備份方式
物理備份
邏輯備份
物理備份一般就是通過tar,cp等命令直接打包復制數據庫的數據文件達到備份的效果
邏輯備份一般就是通過特定工具從數據庫中導出數據并另存備份(邏輯備份會丟失數據精度)
備份需要考慮的問題
定制備份策略前, 我們還需要考慮一些問題
我們要備份什么?
一般情況下, 我們需要備份的數據分為以下幾種
數據
二進制日志, InnoDB事務日志
代碼(存儲過程、存儲函數、觸發器、事件調度器)
服務器配置文件
備份工具
這里我們列舉出常用的幾種備份工具
mysqldump : 邏輯備份工具, 適用于所有的存儲引擎, 支持溫備、完全備份、部分備份、對于InnoDB存儲引擎支持熱備
cp, tar 等歸檔復制工具: ?物理備份工具, 適用于所有的存儲引擎, 冷備、完全備份、部分備份
lvm2 snapshot: 幾乎熱備, 借助文件系統管理工具進行備份
mysqlhotcopy: 名不副實的的一個工具, 幾乎冷備, 僅支持MyISAM存儲引擎
xtrabackup: 一款非常強大的InnoDB/XtraDB熱備工具, ?支持完全備份、增量備份, 由percona提供
設計合適的備份策略
針對不同的場景下, 我們應該制定不同的備份策略對數據庫進行備份, 一般情況下, 備份策略一般為以下三種
直接cp,tar復制數據庫文件
mysqldump+復制BIN LOGS
lvm2快照+復制BIN LOGS
xtrabackup
以上的幾種解決方案分別針對于不同的場景
如果數據量較小, 可以使用第一種方式, 直接復制數據庫文件
如果數據量還行, 可以使用第二種方式, 先使用mysqldump對數據庫進行完全備份, 然后定期備份BINARY LOG達到增量備份的效果
如果數據量一般, 而又不過分影響業務運行, 可以使用第三種方式, 使用lvm2的快照對數據文件進行備份, 而后定期備份BINARY LOG達到增量備份的效果
如果數據量很大, 而又不過分影響業務運行, 可以使用第四種方式, 使用xtrabackup進行完全備份后, 定期使用xtrabackup進行增量備份或差異備份
總結
| cp | 快 | 快 | 一般、靈活性低 | 很弱 | 少量數據備份 |
| mysqldump | 慢 | 慢 | 一般、可無視存儲引擎的差異 | 一般 | 中小型數據量的備份 |
| lvm2快照 | 快 | 快 | 一般、支持幾乎熱備、速度快 | 一般 | 中小型數據量的備份 |
| xtrabackup | 較快 | 較快 | 實現innodb熱備、對存儲引擎有要求 | 強大 | 較大規模的備份 |
該文章作者已設置需關注才可以留言
寫留言
該文章作者已設置需關注才可以留言寫留言
加載中以上留言由公眾號篩選后顯示了解留言功能詳情
微信掃一掃
關注該公眾號
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/sanyuanempire/p/6164300.html
總結
以上是生活随笔為你收集整理的备份MySQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tcp协议头窗口,滑动窗口,流控制,拥塞
- 下一篇: oschina代码仓库远程push,pu