xfsdump是专门备份xfs格式的文件的,centos7以上的版本都是xfs格式的文件了,也还是可以支持ext4。
xfs格式是为了当今和以后设计的,文件系统可以支持到8eb,单个文件可以支持到16tb。
xfsdump备份有2种级别:
完全备份: 0就代表完全备份
level 1-9级 依次增量备份。每提高一个级别等于在上一个备份基础上只备份多出来的部分
xfsdump只能对挂载后的数据进行备份,我们要在虚拟机上增加一块硬盘,并将其挂载一下。
在虚拟机上增加一块10gb的硬盘
然后用
#fdisk -l #查看硬盘的情况:
发现了新增加的硬盘/dev/sdb
格式化sdb采用xfs格式
#mkfs.xfs /dev/sdb
创建一个叫testmnt的文件用来挂载新的硬盘sdb:
#mkdir /testmnt
挂载到testmnt目录下,然后用df命令检测挂载是否成功
#mount /dev/sdb /testmnt
#df -h
创新一个dump的备份目录在根目录下:
#mkdir /dump
准备创建一点测试文件在testmnt里,方便测试。
可以利用tree命令查看目录里的情况,一般系统里没有tree命令,需要yum install下
xfsdump格式:
xfsdump –f [备份存放路径] [要备份的设备文件或挂载点]
命令里加入以下属性为指定备份时免交互操作,方便后期做定时备份
-L 指定备份会话标签
-M 指定设备标签
先对sdb盘里的文件做全备份
#xfsdump -f /dump/sdbbak /testmnt -L dum_sdb_bak -M sdb
查看以下备份的内容:
#ls /var/lib/xfsdump/inventory目录下看到生成的档案信息
继续增加一些内容到testmnt里用来测试增量备份,测试level1
进行level1的增量备份
xfsdump -l 1 -f /dump/sdb_bak1 /testmnt -L dump_sdb_bak1 -M sdb
继续增加一些内容到testmnt里用来测试增量备份,测试level2
进行level2的增量备份
xfsdump -l 2 -f /dump/sdb_bak2 /testmnt -L dump_sdb_bak2 -M sdb
查看下根下dump目录里有三个备份:
删除testmnt下的所有文件,然后开始用xfsrestore命令恢复文件。
注意因为是增量备份,每一次的备份都是在上一次备份上增加一点。所以要逐次恢复上一次的备份才能得到完整的备份,
说的有点绕了,比方你要恢复全部的丢失的文件,第一步要恢复level0的然后level1的然后level2的,以此类推,最后就恢复全部的了。
删除testmnt下的所有文件,然后查看下情况。
开始恢复level0的备份:
#xfsrestore -f /dump/sdb_bak /testmnt
恢复level1的数据:
#xfsrestore -f /dump/sdb_bak1 /testmnt
恢复level2的数据:
#xfsrestore -f /dump/sdb_bak2 /testmnt
成功!数据完全恢复!!!