關(guān)于lvm快照結(jié)合rsync實(shí)現(xiàn)MySQL數(shù)據(jù)卷的遠(yuǎn)程備份教程
關(guān)于lvm快照結(jié)合rsync實(shí)現(xiàn)MySQL數(shù)據(jù)卷的遠(yuǎn)程備份
lvcreate -s -n temp_snap -L 20G /dev/vg00/mysql_data # 1. 創(chuàng)建臨時(shí)快照(時(shí)間點(diǎn)凍結(jié)) mount -o nouuid /dev/vg00/temp_snap /mnt/snap # 2. 掛載快照(訪問凍結(jié)狀態(tài)) rsync -a /mnt/snap/ backup-server:/mysql_backups/ # 3. 將凍結(jié)狀態(tài)數(shù)據(jù)獨(dú)立化 umount /mnt/snap # 4. 卸載 lvremove -f /dev/vg00/temp_snap # 5. 刪除臨時(shí)快照(釋放資源)
-o nouuid:忽略 UUID 沖突(快照和原卷 UUID 相同,必須忽略)
上述命令通過 rsync 將 LVM 快照的數(shù)據(jù)傳輸?shù)搅硪慌_(tái)服務(wù)器,實(shí)際上是在創(chuàng)建一份真正獨(dú)立的備份。這與僅保留 LVM 快照有本質(zhì)區(qū)別,具體作用和優(yōu)勢(shì)如下:
1. 核心作用:實(shí)現(xiàn)數(shù)據(jù)獨(dú)立化
解除對(duì)原始卷的依賴
- LVM 快照本身仍依賴原始卷的物理存儲(chǔ)(通過 COW 機(jī)制),而
rsync后的數(shù)據(jù)是完全獨(dú)立的副本。 - 即使原始服務(wù)器硬盤損壞,備份服務(wù)器上的數(shù)據(jù)依然安全。
避免快照空間耗盡風(fēng)險(xiǎn)
- 快照空間有限,長期保留可能導(dǎo)致失效。
rsync后,備份數(shù)據(jù)不受快照空間限制,可長期存儲(chǔ)。
2. 典型應(yīng)用場(chǎng)景
① 災(zāi)難恢復(fù)
- 如果原服務(wù)器遭遇硬件故障、勒索軟件攻擊或誤刪除,可直接從備份服務(wù)器恢復(fù)數(shù)據(jù)。
- 恢復(fù)示例:
# 在備份服務(wù)器上直接使用數(shù)據(jù) rsync -a /backup/mysql_backups/ /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql
② 數(shù)據(jù)遷移
- 將數(shù)據(jù)遷移到新服務(wù)器或云環(huán)境時(shí),無需停機(jī)。
- 遷移示例:
# 在新服務(wù)器上直接拉取備份數(shù)據(jù) rsync -a backup-server:/mysql_backups/ /var/lib/mysql/
③ 測(cè)試與開發(fā)
- 用備份數(shù)據(jù)搭建測(cè)試環(huán)境,不影響生產(chǎn)系統(tǒng)。
- 用法示例:
# 將備份數(shù)據(jù)掛載到測(cè)試容器 docker run -v /backup/mysql_backups:/var/lib/mysql mysql:latest
3. 為什么比單純快照更可靠?
| 風(fēng)險(xiǎn) | 僅保留 LVM 快照 | rsync 到備份服務(wù)器 |
|---|---|---|
| 原始卷物理損壞 | 快照無法使用 | 數(shù)據(jù)完好無損 |
| 快照空間耗盡 | 快照自動(dòng)失效 | 不影響備份數(shù)據(jù) |
| 誤刪原始卷 | 快照連帶丟失 | 備份數(shù)據(jù)獨(dú)立保留 |
| 需要長期存檔 | 不適合(空間增長不可控) | 可長期保存 |
4. 操作流程的深層意義
完整命令鏈:
lvcreate -s -n temp_snap -L 20G /dev/vg00/mysql_data # 1. 創(chuàng)建臨時(shí)快照(時(shí)間點(diǎn)凍結(jié)) mount /dev/vg00/temp_snap /mnt/snap # 2. 掛載快照(訪問凍結(jié)狀態(tài)) rsync -a /mnt/snap/ backup-server:/mysql_backups/ # 3. 將凍結(jié)狀態(tài)數(shù)據(jù)獨(dú)立化 umount /mnt/snap # 4. 卸載 lvremove -f /dev/vg00/temp_snap # 5. 刪除臨時(shí)快照(釋放資源)
本質(zhì):
通過快照獲得一致性的時(shí)間點(diǎn)鏡像 → 用 rsync 將其轉(zhuǎn)化為真正的備份 → 最后清理臨時(shí)資源。
5. 進(jìn)階建議
校驗(yàn)備份完整性
傳輸后對(duì)比校驗(yàn)和:
# 在原服務(wù)器生成校驗(yàn)文件
find /mnt/snap -type f -exec md5sum {} + > /tmp/checksum_origin
# 在備份服務(wù)器驗(yàn)證
ssh backup-server "find /mysql_backups -type f -exec md5sum {} +" | diff - /tmp/checksum_origin結(jié)合增量備份
首次全量同步后,后續(xù)可通過 rsync --link-dest 實(shí)現(xiàn)增量備份,節(jié)省空間。
自動(dòng)化腳本示例
#!/bin/bash SNAPSHOT_NAME=mysql_$(date +%Y%m%d) lvcreate -s -n $SNAPSHOT_NAME -L 20G /dev/vg00/mysql_data mount /dev/vg00/$SNAPSHOT_NAME /mnt/snap rsync -az --delete /mnt/snap/ backup-server:/mysql_backups/ umount /mnt/snap lvremove -f /dev/vg00/$SNAPSHOT_NAME
總結(jié)
rsync 到另一臺(tái)服務(wù)器的操作,本質(zhì)是將 LVM 快照的臨時(shí)一致性狀態(tài)轉(zhuǎn)化為永久獨(dú)立備份,解決了快照的固有局限性,是專業(yè)備份方案的關(guān)鍵步驟。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Linux服務(wù)器下啟動(dòng)tomcat的三種方式
這篇文章主要介紹了在Linux服務(wù)器下啟動(dòng)tomcat的三種方式,Linux作為一種穩(wěn)定安全的服務(wù)器一直受到業(yè)界歡迎,那么如何啟動(dòng)部署在服務(wù)器上的Tomcat呢,這篇文章帶我們來了解2023-03-03
Linux之路由轉(zhuǎn)發(fā)和SNAT的應(yīng)用方式
這篇文章主要介紹了Linux之路由轉(zhuǎn)發(fā)和SNAT的應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Apache中Virtual Host虛擬主機(jī)配置及rewrite參數(shù)說明
這篇文章主要介紹了Apache中Virtual Host虛擬主機(jī)配置及rewrite模塊中的重要參數(shù)說明,是在同一個(gè)Apache服務(wù)器軟件上部署多個(gè)站點(diǎn)的基礎(chǔ)方法,需要的朋友可以參考下2016-03-03

