您好,登錄后才能下訂單哦!
本文主要給大家介紹MySQL使用中如何備份與恢復數據,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。
在使用MySQL的過程中,我們免不了數據的備份與恢復,數據庫的遷移等操作,針對不同的情形,可以選取不同的方案。還記得之前GitLab刪庫事件嗎?在那么多牛逼的工程師力挽狂瀾下,最后還是丟失6小時的數據,已經是損失最小了。多么慘痛的教訓,也是對運維工程師、數據庫管理員等朋友的一次經典案例,所以我們不僅要制定合理的數據備份計劃,同時還要保證備份數據的可恢復性,整個過程要適當的演練。避免備份機制出現意外情況。
本文主要是介紹不同的備份方式的原理和特點,例如物理備份、邏輯備份、聯機備份、脫機備份等。相互比較,分析總結,更好的選擇適合自己的備份方式與計劃。
物理備份
所謂物理備份就是原始數據在操作系統上呈現什么樣的形式,備份出來就是什么樣,這種方式純屬I/O型的備份方案,備份形式上就是將組成數據庫的數據文件、配置文件、日志文件等相關文件,復制到其他路徑或者其他主機上。常用的方法有 (cp、rsync等),一般情況下需要停止mysql服務或者鎖表,恢復比較快。
適用場景:大型、重要、出現故障時需要快速恢復的場景
物理備份的特點:
備份數據中包括完整的數據庫目錄和數據文件,對于MySQL來說,就是指MySQL的數據目錄
物理備份一般都比較快,因為基本都是I/O復制,不存在數據轉換。
備份時的粒度是整個數據庫服務級,某些存儲引擎有時也能吃吃更新的表粒度,備份粒度也決定了恢復的粒度,因此對備份策略也會有影響。
備份數據中可以包含關聯文件,例如日志文件、配置文件等
對于像MEMORY引擎表這類對象,由于其數據并不保存在磁盤中,而是保存在內存中,因此不會備份,僅能備份相關的表結構。但是可以利用工具備份,例如MySQL Enterprise Backup(企業級產品)工具備份內存表中的數據。
備份能夠輕易恢復到配置類似的機器上。
對于物理備份操作來說,一般是在未啟動的狀態下進行,如果MYSQL服務已經啟動,那就只能對相關的系統對象進行適當的鎖定,保證數據庫的數據不會不會改變,否則備份的數據可能不是完整數據,恢復后,可能存在丟失數據的情況
執行物理備份的方式
操作系統層:cp rsync scp tar
第三方工具:mysqlbackup MySQL Enterprise Backup MyISAM引擎專用 mysqlhotcopy
邏輯備份
所謂的邏輯備份就是將數據庫定義語言和所有的數據轉換成SQL文件存儲,一般有mysqldump等方式,這種方式比較適合小數據量的庫和表,當數據量達到一定量后,備份、恢復時間長,同時會在備份過程中鎖表,影響比較大。
適用場景:小型、以便在其他云服務器上面進行恢復的情景
邏輯備份特點:
備份集是基于查詢MySQL服務獲得數據庫的結構和內容信息
備份速度慢于物理備份
數據備份文件比物理備份更大,因為是以純文本報存,數據沒有經過任何壓縮,一般是采用gzip 或者tar等方式壓縮
備份和恢復的粒度比較靈活,可以是服務級(所有數據庫),也可以是某個庫中的某些表,甚至可以是某張表中的部分數據
備份集不包括日志和配置文件或者其他與數據庫相關的日志文件,這些文件都需要手動備份
備份集通用性比較強,不僅僅是針對MySQL數據庫,甚至將備份文件拿到其他關系型數據庫平臺上恢復
MySQL原始的邏輯備份工具包括mysqldump,甚至 select into outfile 也可以算在內。這些工具可以支持所有的存儲引擎甚至Memory,這種存儲在內存中的引擎
恢復時,備份的SQL文件,可以用mysql 命令導入,也可以在登錄mysql后使用source命令加載。對于部分定界文件可以使用 load data infile 或者mysqlimport導入。
除了物理備份與邏輯備份,某些文件系統支持創建快照,但是MYSQL是通過第三方解決方案實現,例如 VEritas LVM 或者ZFS等。
看了以上關于MySQL使用中如何備份與恢復數據,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。