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