今天看了看數據備份相關的東西,總結了幾個MySQL數據備份的注意事項,簡單分享一下吧。
對于MySQL備份,每個DBA的理解可能都不一樣,備份可以分為下面幾個維度:
文件種類劃分:
1、物理備份,以xtrabackup為代表的物理備份是最常用的備份方法,經常被用在備份大的數據庫上面。
2、邏輯備份,以mysqldump為代表的邏輯備份,小于50G的數據量,用該工具備份起來比較合適。
按照備份內容劃分:
1、全量備份,這個容易理解,就是數據庫完整的一個備份
2、增量備份,基于全量備份的基礎之上的,例如全量備份備份截止日期是昨天,那么昨天到今天這部分數據就是增量備份
3、日志備份,日志備份是在備份文件的基礎上,再對mysql的binlog進行備份,我們知道binlog中記錄了mysql的DDL和DML操作,利用binlog能夠還原數據庫的某個中間狀態。
今天在梳理線上的備份內容的時候,發現了以下一些可能有用的知識點,羅列出來,如果對大家有幫助,那是極好的,如果沒有,權當我自嗨吧~
1、當我們使用xtrabackup備份的時候,對于單機多實例的機器,最好分開時間備份,因為同一時間備份多個MySQL實例嗎,會對磁盤IO影響較大,此時如果還有其他數據寫入,會產生影響
2、可以利用NFS掛載的方式,將本地的數據備份在遠程機器上,這樣可以緩解本地的備份壓力,同時可以保證本地硬盤出現問題不影響數據恢復。應用此種方法的時候,需要考慮機器之間的網絡帶寬。架構圖如下:

3、我們知道,xtrabackup備份完的備份文件,如果我們用來恢復,需要進行了兩個步驟,第一步是apply_log,第二步是copy back,建議是備份完成之后,直接進行apply log的操作,一旦失敗,還可以再備份一次,否則如果默認可用,等到恢復的時候發現有問題,就比較難辦了
4、基于binlog做增量恢復也是一種比較方便的做法,既按照一定的周期進行全量備份,然后定時備份binlog,這期間的任意時間點的數據都可以通過備份的binlog進行恢復
5、如果線上機器有多臺,我們可以通過mysqldump和xtrabackup結合的方式進行備份,設定一個閾值,例如50G,50G以下的數據量,mysqldump的性能比較好,50G以上的數據量,可以考慮使用xtrabackup的方法來進行備份
6、備份數據的目的是為了恢復,最好能在備份完成之后,嘗試恢復一把,保證備份數據的可用性。
7、對于數據量較大的實例,有時候備份的時間特別長,恢復起來也不方便,可以利用跨機房從庫的方法來進行數據備份,此時可以搭建一個延遲從庫,以便在主庫誤操作的時候,從庫可以及時的停止,跳過相關的誤操作步驟。
以上就是MySQL數據庫備份過程的注意事項的詳細內容,更多關于MySQL 備份的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- shell腳本定時備份MySQL數據庫數據并保留指定時間
- Mysql數據庫定時備份腳本分享
- CentOS Mysql數據庫如何實現定時備份
- MySQL數據庫備份恢復實現代碼
- MySQL數據庫入門之備份數據庫操作詳解
- mysql數據備份與恢復實現方法分析
- MySQL定時備份數據庫操作示例
- mysql 數據庫備份的多種實現方式總結
- Linux實現定時備份MySQL數據庫并刪除30天前的備份文件
- linux定時備份MySQL數據庫并刪除以前的備份文件(推薦)
- Mysql備份多個數據庫代碼實例
- MySQL數據備份方法的選擇與思考