XFS文件系统的备份与还原

目录

1. XFS文件系统的备份与还原

常见的备份命令:
XFS文件系统的备份与还原

1.1 XFS文件系统备份:xfsdump

XFS文件系统的备份与还原

下面的方块是【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
...
上一篇:磁盘分区+挂载


下一篇:linux学习总结-01