關(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)
- 快照空間有限,長(zhǎng)期保留可能導(dǎo)致失效。
rsync后,備份數(shù)據(jù)不受快照空間限制,可長(zhǎng)期存儲(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í),無(wú)需停機(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ù)器 |
|---|---|---|
| 原始卷物理?yè)p壞 | 快照無(wú)法使用 | 數(shù)據(jù)完好無(wú)損 |
| 快照空間耗盡 | 快照自動(dòng)失效 | 不影響備份數(shù)據(jù) |
| 誤刪原始卷 | 快照連帶丟失 | 備份數(shù)據(jù)獨(dú)立保留 |
| 需要長(zhǎng)期存檔 | 不適合(空間增長(zhǎng)不可控) | 可長(zhǎng)期保存 |
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)文章
Ubuntu虛擬機(jī)開機(jī)黑屏系列解決方法總結(jié)
ubuntu虛擬機(jī)玩的好好的,突然不知怎么著圖形界面就卡住了,等待了好一會(huì)也不見恢復(fù),沒轍只能考慮強(qiáng)行關(guān)斷虛擬機(jī),一關(guān)掉虛擬機(jī)又完全卡死了,緊接著重啟vmware,發(fā)現(xiàn)一進(jìn)入就是黑屏,所以本文總結(jié)了Ubuntu虛擬機(jī)開機(jī)黑屏系列解決方法,需要的朋友可以參考下2024-07-07
Apache服務(wù)器中.htaccess文件的實(shí)用配置示例集錦
這篇文章主要介紹了Apache服務(wù)器中.htaccess文件的實(shí)用配置示例集錦,囊括了防盜鏈重定向及強(qiáng)制瀏覽器下載指定的文件類型等例子,很黃很暴力,需要的朋友可以參考下2016-03-03
Linux下nginx生成日志自動(dòng)切割的實(shí)現(xiàn)方法
這篇文章主要介紹了 Linux下nginx生成日志自動(dòng)切割的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能看,需要的朋友可以參考下2017-10-10
Linux文件編輯命令vi詳細(xì)整理(總結(jié))
本篇文章主要介紹了Linux文件編輯命令詳細(xì)整理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-07-07
讓Apache 2支持.htaccess并實(shí)現(xiàn)目錄加密的方法
這篇文章主要介紹了讓Apache 2支持.htaccess并實(shí)現(xiàn)目錄加密的方法,文中給出了詳細(xì)的方法步驟,并給出了示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-02-02
linux獲取進(jìn)程執(zhí)行時(shí)間方法示例
linux獲取進(jìn)程執(zhí)行時(shí)間有兩種方法可以獲取,第一種是用time命令,time 進(jìn)程。第二種是通過在程序中進(jìn)行記錄,首先利用sysconf函數(shù)獲取時(shí)鐘滴答數(shù),再用times獲取tms結(jié)構(gòu),詳細(xì)看下面的示例代碼2013-12-12

