centos7使用了xfs格式作為默認文件系統,
xfs提供了xfsdump備份, xfsrestore恢復
- xfs的備份和恢復過程是可以被中斷然后繼續的,無需凍結文件,無需凍結文件系統
- xfsdump甚至提供了高性能的多線程備份操作----他把一次dump拆分成多個數據流,每個數據流可以被發往不同的目的地
xfsdump的備份級別有以下兩種,默認為0
- 0 級別代表 : 完全備份
- 1到9級別代表 : 增量備份
- 完全備份:每次都把指定的備份目錄完整的復制一遍,不管目錄下的文件有沒有變化
- 增量備份:每次將之前(第一次,第二次,直到前一次)做過備份之后又變化的文件備份
- 差異備份:每次都將第一次完整備份依賴有變化的文件進行備份
centos7,添加一塊虛擬硬盤,(准備一個測試環境)
正常使用一塊硬盤的過程
- 添加磁盤 > 分區 > 格式化 > 掛載
1添加磁盤
關閉centos 通過虛擬機>硬盤>添加設備>新硬盤, 開機centos
2分區
ls /dev/sd*
可以看到多了一個/dev/sdb,這就是第二個磁盤(剛剛添加的)
使用fdisk對它進行分區
fdisk /dev/sdb
輸入p查看分區
n新建分區
選擇p主分區
w保存
3格式化
格式化成xfs文件系統
mkfs.xfs /dev/sdb1
4掛載
創建掛載點 mkdir /sdb1 掛載 mount /dev/sdb1 /sdb1/
備份整個系統
xfsdump -f 備份存放位置 要備份路徑或者目錄
- 注意:備份的路徑不能寫成/sdb1/
- 可以寫成/dev/sdb1 或者/sdb1
xfsdump -f /opt/dump_sdb1 /dev/sdb1
會提示指定會話標簽 : dump_sdb1
提示指定設備標簽 : sdb1
也可以指定備份時免交互,方便后期做定時備份
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1
- -L 指定會話標簽,,記錄每次備份的session標頭,這里填寫對此文件系統的簡易說明
- -M 指定設備標簽,, 記錄存儲媒體的標頭,這里填寫此媒體的簡易說明
當然也可以備份分區中的某一個目錄
參數 : -s
- -s 文件路徑 只對指定的文件進行備份
- -s指定時,路徑寫的是相對路徑
xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grup2 -M boot
- 這條命令中-s后面指定的grub2/grub.cfg位於boot目錄下面
文件系統的恢復
xfsrestore -f 指定恢復文件的位置,指定存放恢復后的文件的路徑
xfsrestore -f /opt/dump_sdb1 /sdb1
- 恢復單個文件
xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /boot
在使用xfsdump時有如下限制
xfsdump不支持沒有掛載的文件備份命令
xfsdump必須root的權限才能操作
xfsdump只能備份xfs文件系統
xfsdump備份的數據,只能讓xfsrestore解析
增量備份
概念:是指在上一次全備份或者在上一次增量備份后,以后每次的備份只需備份與前一次相比增加或者刪除的文件
第一次增量備份的對象是進行全備份后產生的增加和修改的文件,第二次增量備份的對象時進行第一次增量備份后所產生的增加和修改的文件
- 優點:沒有重復的備份數據,因此備份的數據量不大,備份所需的時間比較短
- 缺點:數據恢復相對比較麻煩,他需要上一次全備份和所有增量備份的內容才能夠完全恢復成功,並且它們必須沿着從全備份到以此增量備份的時間順序逐個反推恢復,因此可能會延長恢復時間
實戰:
1 第一次完全備份
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1
2 將要備份的目錄添加內容,進行增量備份
xfsdump -l 1 -f /opt/dump_sdb1.1 /dev/sdb1 -L dump_sdb1.1 -M sdb1
-l <level> : 做一個等級為1的備份
3 接着添加內容,繼續進行增量備份
xfsdump -l 2 -f /opt/dump_sdb1.2 /dev/sdb1 -L dump_sdb1.2 -M sdb1
-l <level>做一個等級為2的備份
4 刪除原始數據,
rm -rf /sdb1/*
現在改如何恢復呢
步驟:
- 先恢復完全備份
-
- 情況一:恢復最后一次增量備份,(如果兩次增量備份都是1級別的所以只需要備份最后一個增量就可以了)
- 情況二:如果你做的是第一次是1級倍,第二次是2級倍,那么你在恢復的時候就需要先恢復1級倍,然后是2級倍,以此類推
- 那么很明顯,我們這個實例是情況二
恢復完全備份 xfsrestore -f /opt/dump_sdb1 /sdb1 第一次增量恢復 xfsrestore -f /opt/dump_sdb1.1 /sdb1 第二次增量恢復 xfsrestore -f /opt/dump_sdb1.2 /sdb1
經過測試發現第一次和第二次增量恢復的順序是可以顛倒的,因為他們備份的都是特定的數據