XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。

centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。

与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地

首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份)

0 级别代表:           完全备份

1  到9级别代表:      增量备份

扩展:

完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;

增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份;

差异备份:每次都将第一次完整备份以来有变化的文件进行备份。

4.4.1 环境准备

实验环境:

        系统CENTOS7.2 添加一块虚拟硬盘(准备一个测试分区)

正常使用一块磁盘过程如下:

添加磁盘大小:20G à分区à格式化à挂载进行使用

对新添加的硬盘进行格式化:

[root@xuegod63 ~]# fdisk /dev/sdb             #指定需要分区的设备

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x06d5a427 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n  #创建一个新的分区

Partition type:

    primary (0 primary, 0 extended, 4 free)   #主分区

    extended                                 #扩展分区      

Select (default p): p  #创建一个主分区

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G  #指定分区大小

分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):p    #打印分区表

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x06d5a427

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

命令(输入 m 获取帮助)w  #保存

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@xuegod63 ~]# ls  /dev/sdb*  #查看第二块磁盘

/dev/sdb  /dev/sdb1

使用新的分区,格式化分区,并进行挂载

[root@xuegod63 ~]# mkfs.xfs /dev/sdb1     #格式化分区

[root@xuegod63 ~]# mkdir /sdb1     #创建挂载点

[root@xuegod63 ~]# mount /dev/sdb1 /sdb1   #挂载

准备备份测试文件

[root@xuegod63 ~]# cd /sdb1/   #进入到/目录下的sdb1

[root@xuegod63 sdb1]# cp /etc/passwd ./  #复制/etc/passwd文件到当前目录下

[root@xuegod63 sdb1]# mkdir test          #创建一个新的文件夹        

[root@xuegod63 sdb1]# touch test/a          #在test目录下创建一个文件

[root@xuegod63 sdb1]# tree /sdb1/          #查看sdb1目录下的内容

[root@xuegod63 sdb1]# tree /sdb1/

/sdb1/

├── passwd

└── test

    └── a

4.4.2 备份

1、备份整个分区。 (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)

xfsdump  -f 备份存放位置 要备份路径或设备文件

注意:备份的路径这里不能写成/sdb1/   可以是/dev/sdb1 或/sdb1(刚挂载的目录)

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1

                        xfs拷贝备份 -f /opt/dump_adb1(直接创建的文件)

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1    #把/dev/下的sdb1或者是之前把/dev/sdb1挂载到根目录下的/sdb1 备份到/opt/目录下的新建的文件dump_sdb1都可以

xfsdump: using file dump (drive_simple) strategy

xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control

========== dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)

 -> dump_sdb1     #指定备份会话标签

session label entered: "dump_sdb1"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of xuegod63.cn:/sdb1

xfsdump: dump date: Fri Nov 17 12:24:53 2017

xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a

xfsdump: session label: "dump_sdb1"

xfsdump: ino map phase 1: constructing initial dump list

xfsdump: ino map phase 2: skipping (no pruning necessary)

xfsdump: ino map phase 3: skipping (only one dump stream)

xfsdump: ino map construction complete

xfsdump: estimated dump size: 25856 bytes

============== media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)

 -> sdb1    #指定设备标签,就是对要备份的设备做一个描述

media label entered: "sdb1"

 --------------------------------- end dialog --------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)

xfsdump: dumping ino map

xfsdump: dumping directories

xfsdump: dumping non-directory files

xfsdump: ending media file

xfsdump: media file size 24544 bytes

xfsdump: dump size (non-dir files) : 2592 bytes

xfsdump: dump complete: 46 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_sdb1 OK (success)

xfsdump: Dump Status: SUCCESS   # 显示success表示成功

2、 指定备份时免交互操作,方便后期做定时备份

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1

-L  :xfsdump  纪录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明

-M  :xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明

[root@xuegod63 opt]# xfsdump -f /opt/dump_passwd /sdb1或(/dev/sdb1) -L dump_passwd -M sdb1

xfsdump: using file dump (drive_simple) strategy

xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control

xfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specified

xfsdump: level 0 dump of xuegod63.cn:/sdb1

xfsdump: dump date: Sat Jun 15 13:55:04 2019

xfsdump: session id: f5ee3040-8655-4a69-9f26-bead841eb49e

xfsdump: session label: "dump_passwd"

xfsdump: ino map phase 1: constructing initial dump list

xfsdump: ino map phase 2: skipping (no pruning necessary)

xfsdump: ino map phase 3: skipping (only one dump stream)

xfsdump: ino map construction complete

xfsdump: estimated dump size: 25856 bytes

xfsdump: creating dump session media file 0 (media 0, file 0)

xfsdump: dumping ino map

xfsdump: dumping directories

xfsdump: dumping non-directory files

xfsdump: ending media file

xfsdump: media file size 24544 bytes

xfsdump: dump size (non-dir files) : 2592 bytes

xfsdump: dump complete: 20 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_passwd OK (success)

xfsdump: Dump Status: SUCCESS  # 显示success表示成功

[root@xuegod63 opt]# ls /opt/dump_passwd   #查看已经备份成功

/opt/dump_passwd       

3、指定只备份分区中某个目录

参数:-s 文件路径  只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)

[root@xuegod63 sdb1]# ls /boot/grub2/grub.cfg

/boot/grub2/grub.cfg

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L

dump_grub2 -M boot-grub2

:文件位置在grub2    grub2本来就在根目录下所以不用再加/boot,

:要备份的文件目录位置是在/boot    #绝对路径

#指定备份会话标签

#指定设备标签,就是对要备份的设备做一个描述

[root@xuegod63 boot]# ls /opt

dump_grub2  dump_passwd  dump_sdb1  rh

[root@xuegod63 boot]#ll -hl /0pt

总用量 76K

-rw-r--r--  1 root root 28K 6月  15 14:40 dump_grub2

-rw-r--r--  1 root root 24K 6月  15 13:55 dump_passwd

-rw-r--r--  1 root root 24K 6月  15 12:53 dump_sdb1

drwxr-xr-x. 2 root root  6  9月   7  2017  rh

4、查看备份信息与内容

备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案日志信息

[root@xuegod63 boot]# ls /var/lib/xfsdump/inventory/

0a7b7b70-a7c0-45d8-b116-f219b15ba91a.InvIndex  69bf6c3d-2d25-48d3-b73c-1a987bbec173.StObj  b60e1056-d4f6-4683-b486-72cf8fe6aee4.InvIndex

0e52cdd2-37ff-4213-9432-38f0dfba46b6.StObj    

[root@xuegod63 opt]# xfsdump  -I(字母大写i)这个可以查看备份的更详细

测试恢复:先删除之前创建的内容

[root@xuegod63 sdb1]# ls

passwd  test

[root@xuegod63 sdb1]# pwd

/sdb1

[root@xuegod63 sdb1]# rm -rf ./*

 

4.4.3 文件系统恢复

语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径

[root@xuegod63 opt]# xfsrestore -f /opt/dump_sdb1  /sdb1

查看恢复情况

[root@xuegod63 ~]# ls /sdb1/

恢复单个文件如下:

[root@xuegod63 ~]# mkdir /var/test/

[root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/#恢复文件

                                之前备份再/opt/的文件  只恢复一个文件  恢复到/var/test/文件夹下

[root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/  #恢复目录

                                之前备份再/opt/的文件  恢复一个目录  恢复到/var/test/文件夹下

注:

使用 xfsdump 时,请注意下面下面的几个限制:
1、xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
2、xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
3、xfsdump 只能备份 XFS 文件系统
4、xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
5、xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统

4.4.4 增量备份

概念

       增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推。

优缺点

优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。

缺点:数据恢复相对比较麻烦,它需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此可能会延长的恢复时间

 

实战: 增量备份文件系统

准备一个备份目录进行备份

[root@xuegod63
sdb1]# tree  /sdb1

/sdb1/

├──
passwd

└── test

    └── a

对上面的内容进行第一次全备

[root@xuegod63
sdb1]# xfsdump -f /opt/test-full /sdb1 -L test-full -M media0

增加一些内容,然后进行第1次增量备份

[root@xuegod63
~]# touch  /sdb1/1.txt /sdb1/2.txt

[root@xuegod63
~]# tree  /sdb1/

/sdb1/

├── 1.txt

├── 2.txt

├──
passwd

└── test

└── a

[root@xuegod63
sdb1]# xfsdump -l 1 -f /opt/test-back1 /sdb1 -L
test-bak1 -M media0

-l
<level> 
做一个等级为1的备份

再次增加内容,然后进行level 2级别的增量备

[root@xuegod63
sdb1]# touch  /sdb1/test/a.txt  /sdb1/test/b.txt

[root@xuegod63
~]# tree /sdb1/

/sdb1/

├──
1.txt

├──
2.txt

├──
passwd

└── test

    ├── a

    ├── a.txt

└── b.txt

[root@xuegod63 sdb1]# xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0

[root@xuegod63
~]# rm -rf /sdb1/*    #
删除所有数据

 

现在进行恢复,要想恢复全部全部数据,包括新添加的文件,如何恢复?

步骤:

       1、先恢复完全备份   

       2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。

3、情况2:如果你做的是第一次是1级备,第二次是2级备,那么你在恢复的时候就需要先恢复完全备份,然后是1级备,最后是2级备)

[root@xuegod63
~]# xfsrestore -f /opt/test-full /sdb1/

[root@xuegod63
~]# xfsrestore -f /opt/test-back2 /sdb1/  #
故意先恢复back2,查看

[root@xuegod63
~]# tree /sdb1/  #
查看,发现没有1.txt ,2.txt

/sdb1/

├── passwd

└── test

    ├── a

    ├── a.txt

└── b.txt

[root@xuegod63
~]# xfsrestore -f /opt/test-back1 /sdb1/  

[root@xuegod63
~]# tree /sdb1/ 

到此,数据恢复成功了。

(linux)Centos 7 xfsdump文件系统的备份和恢复的更多相关文章

  1. XFS文件系统的备份和恢复

    1.工具 XFS文件系统提供了xfsdump和xfsrestore来协助备份.恢复XFS文件系统中的数据,xfsdump按inode顺序来备份XFS文件系统,备份时不需要卸载文件系统,备份和恢复的过程 ...

  2. 实战:xfs文件系统的备份和恢复

    概述 XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统. centos7选择xfs格式作为默认文件系统 ...

  3. Linux系统下MySQL数据库的备份和恢复

    当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务 ...

  4. Centos中MySQL数据的备份和恢复

    1.MySQL数据备份 MySQL在Centos备份中用到了mysqldump这个文件,首先得把它找出来: [root@instance-3snz20bz ~]# whereis mysqldump ...

  5. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

  6. linux centos 恢复 还原 备份 Snapper 快照说明

    为什么要使用Snapper快照? 我们可以想像以下场景: 1. 场景一:系统发生意外宕机,工程师无法快速定位问题,业务受到中断,客户十分不满意. 2. 场景二:项目会议上,就是否升级某软件到最新版本, ...

  7. 如何备份及恢复Linux文件权限

    你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备 ...

  8. 大数据集群Linux CentOS 7.6 系统调优篇

    大数据集群Linux CentOS 7.6 系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置主机hosts文件 1>.修改主机名 [root@node100 ...

  9. [转帖]如何备份及恢复Linux文件权限

    如何备份及恢复Linux文件权限   http://embeddedlinux.org.cn/emb-linux/entry-level/201604/10-5337.html 三年前我就干过 chm ...

随机推荐

  1. 记jmeter接口测试动态获取验证码

    在用jmeter做接口测试时,需要动态的获取验证码,以便在登录成功后可以获取token,但是在测试的过程中,遇到了一个问题,想在这里给大家分享一下: 环境描述     在获取验证码的http请求下加后 ...

  2. Coursera课程笔记----计算导论与C语言基础----Week 12

    期末编程测试(Week 12) Quiz1 判断闰年 #include <iostream> using namespace std; int main() { int year; cin ...

  3. repo使用总结—从入门到入门

    文章目录 1 what's repo 2 官方文档 Repo 命令参考资料 help 帮助 init 初始化 sync 同步所有项目文件 upload 提交更改 diff download foral ...

  4. Linux Kernel Makefiles Kbuild en

    来自Linux kernel docs,顺便整理了一下排版 Linux Kernel Makefiles This document describes the Linux kernel Makefi ...

  5. Mysql 常用数据库操作

    一.数据库操作: 1.查看数据库: >SHOW DATABASES; 2.创建数据库: >CREATE DATABASE db_name; //db_name为数据库名 3.使用数据库: ...

  6. Postman学习之Authorization

    前言:本章将学习Postman当中的授权——Authorization 一.简介 Authorization顾名思义就是授权的意思,那是给谁授权呢?又有多少种授权的方式呢?Authorization是 ...

  7. flex布局学习总结--阮一峰

    基本概念:   采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器".它的所有子元素自动成为容器成员,称为 Flex 项目(flex it ...

  8. 【雕爷学编程】Arduino动手做(51)---触摸按键模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  9. P2444 [POI2000]病毒 AC自动机

    P2444 [POI2000]病毒 #include <bits/stdc++.h> using namespace std; ; struct Aho_Corasock_Automato ...

  10. Bootstrap组件的使用

    五.常用组件 总结: boot中事件,关注两件事 1.事件是如何触发的.自定义属性触发,触发方式是这个属性的值 2.事件触发的目标 button绑定目标 data-target="#id&q ...