xfsdump和xfsrestore命令的使用

时间:2024-03-19 18:47:58

xfsdump是专门备份xfs格式的文件的,centos7以上的版本都是xfs格式的文件了,也还是可以支持ext4。

xfs格式是为了当今和以后设计的,文件系统可以支持到8eb,单个文件可以支持到16tb。

xfsdump备份有2种级别:

完全备份: 0就代表完全备份

level 1-9级 依次增量备份。每提高一个级别等于在上一个备份基础上只备份多出来的部分

xfsdump只能对挂载后的数据进行备份,我们要在虚拟机上增加一块硬盘,并将其挂载一下。

在虚拟机上增加一块10gb的硬盘xfsdump和xfsrestore命令的使用

然后用

#fdisk -l     #查看硬盘的情况:

xfsdump和xfsrestore命令的使用

发现了新增加的硬盘/dev/sdb

格式化sdb采用xfs格式

#mkfs.xfs  /dev/sdb

xfsdump和xfsrestore命令的使用

创建一个叫testmnt的文件用来挂载新的硬盘sdb:

#mkdir /testmnt

xfsdump和xfsrestore命令的使用

挂载到testmnt目录下,然后用df命令检测挂载是否成功

#mount /dev/sdb /testmnt

#df -h

xfsdump和xfsrestore命令的使用

创新一个dump的备份目录在根目录下:

#mkdir /dump

xfsdump和xfsrestore命令的使用

准备创建一点测试文件在testmnt里,方便测试。

xfsdump和xfsrestore命令的使用

可以利用tree命令查看目录里的情况,一般系统里没有tree命令,需要yum install下

xfsdump和xfsrestore命令的使用

xfsdump格式:

xfsdump –f [备份存放路径] [要备份的设备文件或挂载点]

命令里加入以下属性为指定备份时免交互操作,方便后期做定时备份

-L 指定备份会话标签

-M 指定设备标签

先对sdb盘里的文件做全备份

#xfsdump -f  /dump/sdbbak /testmnt -L dum_sdb_bak -M sdb

xfsdump和xfsrestore命令的使用

查看以下备份的内容:

#ls /var/lib/xfsdump/inventory目录下看到生成的档案信息

xfsdump和xfsrestore命令的使用

继续增加一些内容到testmnt里用来测试增量备份,测试level1

xfsdump和xfsrestore命令的使用

进行level1的增量备份

xfsdump -l 1 -f /dump/sdb_bak1 /testmnt -L dump_sdb_bak1 -M sdb

xfsdump和xfsrestore命令的使用

继续增加一些内容到testmnt里用来测试增量备份,测试level2

进行level2的增量备份

xfsdump -l 2 -f /dump/sdb_bak2 /testmnt -L dump_sdb_bak2 -M sdb

查看下根下dump目录里有三个备份:

xfsdump和xfsrestore命令的使用

删除testmnt下的所有文件,然后开始用xfsrestore命令恢复文件。

注意因为是增量备份,每一次的备份都是在上一次备份上增加一点。所以要逐次恢复上一次的备份才能得到完整的备份,

说的有点绕了,比方你要恢复全部的丢失的文件,第一步要恢复level0的然后level1的然后level2的,以此类推,最后就恢复全部的了。

 

删除testmnt下的所有文件,然后查看下情况。

xfsdump和xfsrestore命令的使用

开始恢复level0的备份:

#xfsrestore -f /dump/sdb_bak /testmnt
xfsdump和xfsrestore命令的使用

恢复level1的数据:

#xfsrestore -f /dump/sdb_bak1 /testmnt

xfsdump和xfsrestore命令的使用

恢复level2的数据:

#xfsrestore -f /dump/sdb_bak2 /testmnt

xfsdump和xfsrestore命令的使用

成功!数据完全恢复!!!