目录
1. XFS文件系统的备份与还原
常见的备份命令:
1.1 XFS文件系统备份:xfsdump
下面的方块是【xfsdump】备份起来的数据
第一次备份一定是完整备份,完整备份在【xfsdump】当中被定义为【level 0】
第二次备份【level 1】只是比较当前文件系统数据与【level 0】的差异后,仅仅备份有变化过的文件而已,以此类推
使用【xfsdump】的限制:
- 【xfsdump】不支持没有挂载的文件系统备份,只能备份已挂载的文件系统
- 【xfsdump】必须使用 root 的权限才能操作
- 【xfsdump】只能备份 xfs 文件系统
- 【xfsdump】备份下来的数据 / 文件 / 存储媒介 只能让【xfsrestore】解析
- 【xfsdump】是通过文件系统的UUID(全局唯一标识符)来辨别各个备份文件,因此不能备份两个具有相同UUID的文件系统
用法:
[root@study ~] xfsdump [-L Slabel] [-M M_label] [-l] [-f 备份文件] 待备份数据
[root@study ~] xfsdump -I
选项与参数:
-L : xfsdump会记录每次备份的session标头,这里可以填写针对此文件系统的简易说明
-M : xfsdump可记录存储媒介的标头,这里可以填写此媒介的简易说明
-l : 是L的小写,指定等级,有0~9共10个等级(默认为0,即完整备份)
-f : 类似tar,后接产生的文件,也可接如 /dev/st0 设备文件名或其他一般文件的文件名等
-I : 从/tar/lib/cfsdump/inventory列出目前备份的信息状态
1.1.0 用【xfsdump】备份完整的文件系统
范例:
将整个【/boot】文件系统备份
1.先确定【/boot】是独立的文件系统
[root@study ~] df -h /boot #用于显示系统上可使用的磁盘空间
Filesystem Size Used Available Use% Mounted on
/dev/vda2 1014M 131M 884M 13% /boot #挂载 /boot 的是/dev/vda设备,有挂载点(/boot)所以是独立的文件系统
2.将完整备份的文件名记录为【/srv/boot.dump】
[root@study ~] xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
# xfsdump [-L S_label] [-M M_label] [-l] [-f 备份文件] 待备份数据
....
3.显示【/srv/boot.dump】
[root@study ~] ll /srv/boot.dump
1.1.1 用【xfsdump】进行增量备份(Incremental backups)
只有完整备份过,才能进行增量备份
0.观察有没有任何文件系统被【xfsdump】备份过的数据
[root@study ~] xfsdump -I
...
level: 0
...
#有完整备份过的数据
1.在【/boot】内,建立一个大约 10MB 的文件
[root@study ~] dd if=/dev/zero of=/boot/testing.img bs=1M count=10 #bz=block size=1M 10*1M=10M
#dd 指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
#if=input file of=output file
#/dev/zero产生0的文件
...
2.建立差异备份文件,此时使用level 1
[root@study ~] xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot
...
[root@study ~] ll /srv/boot*
-rw-r--r-- 1 root root 102872168 Jul 1 18:43 /srv/boot.dump
-rw-r--r-- 1 root root 10510952 Jul 1 18:46 /srv/boot.dump1
3.观察是否有记录 level 1 备份的时间点
[root@study ~] xfsdump -I
1.2 XFS文件系统还原:xfsrestore
在急用时,备份文件可恢复系统的重要数据
[root@study ~] xfsrestore -I #查看备份文件
[root@study ~] xfsrestore [-f 备份文件] [-L S_label] [-s] 待恢复目录 #单一文件系统恢复
[root@study ~] xfsrestore [-f 备份文件] -r 待恢复目录 #通过增量备份文件来恢复系统
[root@study ~] xfsrestore [-f 备份文件] -i 待恢复目录 #进入交互模式
选项与参数:
-I : 可查询备份数据,包括 label 名称与备份时间等
-f : 后接备份文件
-L : session的label name,可用-I查询label name等
-s : 后接特定目录,亦即仅恢复某一个文件或目录之意
-r : 如果用文件来存储备份数据,则不需要使用,如果是一个磁带内有多个文件,需要此选项来完成累积恢复
-i : 进入交互模式
1.2.0 用【xfsrestore】观察【xfsdump】后的备份数据内容
[root@study ~] xfsrestore -I
1.2.1 简单恢复 level 0 的文件系统
1.将备份文件【/srv/boot.dump】覆盖回【/boot】
第一个备份文件level 0 的session label是【boot_all】
[root@study ~] xfsrestore -f /srv/boot.dump -L boot_all /root
...
2.将备份数据在【/tmp/boot】下解开
[root@study ~] mkdir /tmp/boot
[root@study ~] xfsrestore -f /srv/boot.dump -L boot_all /tmp/root
[root@study ~] du -sm /boot /tmp/boot
#【du】:用于查看磁盘占用空间
#【-s】:仅显示总计
#【-m】:以MB为单位显示文件大小
109 /boot
99 /tmp/boot
#备份后二者大小不一
[root@study ~] diff -r /boot /tmp/boot
Only in /boot : testing.img #/boot中增加过一个文件testing.img
1.2.2 恢复增量备份数据
恢复 level 1 到【/tmp/boot】
[root@study ~] xfsrestore -f /srv/boot.dump1 /tmp/boot
1.2.3 仅还原部分文件的【xfsrestore】交互模式【-i】
先进入备份文件【/tmp/boot】中,找出需要备份的文件,还原到【/tmp/boot3】
[root@study ~] mkdir /tmp/boot3
[root@study ~] xfsrestore -f /srv/boot.dump -i /tmp/boot3
...