亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

MySQL數據備份方法的選擇與思考

瀏覽:6日期:2023-10-04 16:27:15

從事DBA的行業也有兩年多了,在數據備份上無論是理論和實踐上,都積累了一些經驗,恰逢這兩天又出現一些數據備份方面的問題,這里,我將之前遇到過的數據備份方法簡單做個整理。

我們都知道,保障數據庫的穩定、安全、高效運行,是DBA的工作職責所在。對于DBA來講,要想實現數據安全,數據備份可能是至關重要的一個環節。

我曾經就遇到過一個案例,業務方誤刪數據引發故障,要求DBA恢復數據,結果發現當天的數據沒有備份,場面一度十分尷尬,本來這個故障是業務引發的,但是由于沒有數據備份,最后業務和DBA各打五十大板,一起背鍋。如果業務沒有要求DBA恢復數據,那么DBA完全可以后續悄悄的將數據備份,最后就可以免于被牽連,當然,生產環境沒有如果。

備份的重要性,自然不言而喻,那么我們常見的備份思路,都可以有哪些呢?根據備份是否影響線上環境,大體可以分為冷備、熱備2種方法,其中冷備可以理解是對線上業務有影響,需要離線備份,而熱備是對線上業務沒有影響或者影響比較小。

我自己總結了以下方法:

1、rsync、cp拷貝文件

這種方法比較暴力,就是直接停止MySQL數據庫,然后通過cp、rsync這種Linux物理文件復制命令,來實現數據的備份。

其中:

cp特指的是備份到當前服務器的其他目錄

rsync特指的是備份到其他服務器上

這種方法,要注意下面幾點:

a、那對于線上環境來講,rsync的方法會更好,因為如果服務器宕機了,cp方法備份也會不可用。

b、rsync和cp的方法,都需要在主從架構的從庫上,或者是指定備份庫上進行。(這里我推薦線上環境使用一主一從一備份的復制架構)

冷備份的最大的優點是速度快、操作簡單。

適合大數據庫的日常備份。

2、select xxx into outfile語法

這種方法,其實往往不能叫做備份,因為它其實只備份了一個表的數據,但是它非常有用。

試想這樣一種場景,業務方讓你update幾百條數據,而表中的數據有上千萬條,這個時候,如果備份全表,就顯得不那么靈活,而且耗費的時間較長。如果我們使用select的語法,將這些需要修改的數據,先保存到一個txt的文件中,即使update之后,業務反饋和預期不符,也能快速的找到update之前的樣子,可以極大的縮短你恢復數據的時間。

這種備份方法適合單個表的某一部分數據變更前的備份。

3、延時從庫

在MySQL中,這種備份方案相對比較少,在MongoDB中,延時從庫非常常見。但是延時從庫是一種比較好的在線備份手段,它最主要的特點是恢復的可能性高。

有些時候,你辛苦備份的數據,在其他服務器上,因為各種依賴或者版本問題,導致無法還原一個MySQL實例,這就比較尷尬,而延時從庫可以很好的解決這個問題,因為本身從庫是運行中的,所以不用擔心庫起不來的情況。

延時從庫的備份方案中,要控制從庫的延時時間,如果設置的過短,可能在主庫上引發問題的SQL已經在從庫上執行過了,那么就起不到延時的效果,那延時從庫就失去意義了。

4、邏輯備份mysqldump

這可能是最常見的一種MySQL備份方式了,mysqldump這個官方提供的備份工具,可以提供給你某個時間點的一致性快照,可以很清楚的知道當前的時間點,MySQL數據庫執行到了那個binlog的位點,恢復的精確性很高。而且,它支持指定庫表備份等,功能非常強大。

它適合數據量在50G以下的數據庫備份,超過50G,恢復的時候會特別慢。

這個不必多說,大家都知道。

記得加--single-transaction,要不然可能會出現鎖表,業務無法寫入的問題,曾經有個小兄弟在這里栽倒了。

它的特點是能夠給你某個時間點的數據庫快照,而且備份文件總體比較小。

5、xtrabackup備份

這是另外一種熱備份的方式,xtrabackup備份方式可以在不影響數據庫寫入的情況下對數據庫進行熱備,本質其實還是物理文件拷貝,比mysqldump的速度要快。

如果主庫讀寫壓力比較小,則可以在主庫上直接備份。不過還是建議不要在主庫上使用,因為曾經出現過線上主庫寫入壓力比較大,xtrabackup直接把主庫備份宕機的情況出現,從庫上不停庫進行xtrabackup才是相對比較安全的方法。

它的特點是備份速度快,備份對線上影響比較小。

6、binlog備份

binlog備份本質上還是SQL語句的備份,類似mysqldump的結果,不過binlog中保留的數據比mysqldump保留的數據多一些。

如果你擁有這個數據庫從啟動開始所有的binlog,毋庸置疑,你可以將這個數據庫還原出來。但是所有的binlog必定是一個比較比較大的數據量,一般很難保留全量日志,所以binlog備份一般情況下需要搭配快照備份。

我們可以在一個從庫上線停掉復制關系,然后flush log新生成一個binlog,記錄為binlog0,然后將這個從庫完整的備份拷貝一份,之后保存binlog0往后的所有binlog,這樣就能利用從庫的完整備份+binlog的方法來恢復從庫的數據。

binlog備份適用于那些binlog寫入速度一般的數據庫,如果你的數據庫binlog刷新的速度很快,那數據容量可能會成為瓶頸。

7、clone plugin

clone plugin是8.0的一個亮點功能,既可以支持數據備份到本地,也可以支持快速遠程拉起一個數據庫的從庫,是一個值得研究的備份方法。之前的文章中也有詳細些過,有興趣可以去看。也可以參考官方文檔。

但是目前,線上環境使用的比較少,原因是大部分國產數據庫目前都停留在MySQL5.7版本,當然,8.0是趨勢,沒升級的趕快升級吧。

以上就是MySQL數據備份方法該如何選擇的詳細內容,更多關于MySQL 數據備份的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国内视频一区二区 | 韩国三级一线观看久 | 久久久久久免费一区二区三区 | 日韩一级视频 | 放荡女同老师和女同学生 | 在线视频麻豆 | 中文字幕在线日韩 | 99久久精品国产国产毛片 | 96免费精品视频在线 | 欧美一区二区三区在线视频 | 国产日韩免费视频 | 尤物视频在线观看 | 亚洲地址一地址二地址三 | 欧美日韩中文国产一区二区三区 | 国产无限免费观看黄网站 | 色一情一区二区三区四区 | 黄色片91 | 成人国产日本亚洲精品 | 99re这里有免费视频精品 | 中文字幕爱爱 | 永久在线观看www免费视频 | 国产一卡 | 成人性生活免费视频 | 成人一级黄色大片 | 国产成人免费在线视频 | 成人国产在线视频在线观看 | 亚洲视频一 | 国产精品久久久久这里只有精品 | 97玖玖 | 国产乱码一区二区三区 | 亚洲午夜影视 | 精品视频一区二区三区在线播放 | 亚洲黄色高清视频 | 全部费免一级毛片不收费 | 有一婷婷色 | 日本视频免费高清一本18 | 亚洲精品日韩专区在线观看 | 色综合天天色综合 | 超级97碰碰碰碰久久久久最新 | 尤物网在线视频 | 亚洲精品区 |