zoukankan      html  css  js  c++  java
  • Linux备份-xfsdump,xfsrestore

    本次测试环境 虚拟机vm10,Linux系统centos7.5

    xfsdump概念

    概念:
    xfsdump命令可以支持0-9共十个备份级别;而0是完全备份,1-9是增量备份
    系统XFS的备份和恢复的过程是可以被中断然后继续的,无需冻结文件系统。
    xfsdump甚至特功了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地,相当于热备份

    xfsdump命令的格式与参数

    功能:备份文件、目录、分区
    格式:[root@localhost ~]# xfsdump [选项] 备份存放路径 要备份的设备文件或挂载点

    选项:

    选项 功能
    -f 文件名 指定备份后的文件名
    -l xfsdump 默认是0 , xfsdump -l 2 就是增量备份2
    -L 指定对备份会话标签
    -M 指定设备标签
    -s 文件路径 只对指定的文件/目录进行备份
    -I 查看备份文件
    -i 进入备份文件目录内,使用交互模式选择文件来进行还原
    -j 调用 bzlib 库压缩备份文件,备份文件压缩为 .bz2 格式,默认压缩等级是 2;

    ls /var/lib/xfsdump/inventory 查看生成的备份档案信息
    xfs_info命令行工具来检查数据块大小和数量

    要将XFS文件扩展到1986208:xfs_growfs /dev/centos/root -D 1986208
    如果你不使用“-D”选项来指定大小,xfs_growfs将会自动扩展XFS文件系统到最大的可用大小。

    注意要点

    1.dump只能备份centos7版本以下的,他们是ext2或ext3文件系统,centos7后系统就改成默认xfs系统,对ext4也是支持的,xfs系统也有它的备份工具xfsdump
    2.Linux系统支持etx,ext(1-4),xfs,JFS2,msdos,vfat,iso9660,smb,ncp,sysv,hpfs,ufs多种文件系统
    3.xfsdump不支持没有挂载的文件系统设备, 所以只能备份已挂载的
    4.xfsdump必须使用root的权限才能操作(设计文件系统的关系)
    5.xfsdump只能备份xfs文件系统, 其他不能
    6.xfsdump备份下来的数据(档案或存储媒体) 只能让xfsrestore解析
    7.xfsdump是透过文件系统的 UUID来分辨各个备份文档的, 因此不能备份两个具有相同的UUID文件

    8.有些机子没xfsdump,得安装
    ①本地挂载光盘/dev/sr0 /mnt/cdrom,rpm、yum安装xfsdump包,但xfsdump包是本地的,名称也是固定的,得rpm -qa |grep dump 查包,解决包的依赖关系,并安装所需包
    ②yum网络安装包 yum install xfsdump


    新增硬盘,分区,挂载

    https://www.cnblogs.com/xwdzj/p/14069517.html



    实验挂载备份

    
    创建挂载点
    [root@aubin ~]# mkdir /sdb1
    [root@aubin ~]# ls
    anaconda-ks.cfg  ggb  initial-setup-ks.cfg  公共  视频  文档  音乐
    boot.bak.bz2     hhh                        模板  图片  下载  桌面
    
    将/dev/sdb1 挂载到 /sbd1下
    [root@aubin ~]# mount /dev/sdb1  /sdb1   
    [root@aubin ~]# cd /sdb1
    [root@aubin sdb1]# cp /etc/passwd ./
    
    [root@aubin sdb1]# ls
    passwd  ssr
    
    向挂载点内创建测试文件
    [root@aubin sdb1]# mkdir test
    [root@aubin sdb1]# touch txt
    
    [root@aubin sdb1]# ls
    passwd  ssr  test  txt
    
    查看该目录下结构
    [root@aubin sdb1]# tree ./
    ./
    ├── passwd
    ├── ssr
    │   └── txt
    ├── test
    └── txt
    
    2 directories, 3 files
    

    备份测试文件

    xfsdump -f  备份存放位置   要备份的路径或设备文件
    [root@aubin ~]# xfsdump -f /opt/dump_sdb1  /sdb1    注:备份/sdb1与/dev/sdb1是一样的。
    xfsdump: using file dump (drive_simple) strategy
    xfsdump: version 3.1.7 (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-0            指定备份会话标签,关于这次备份请输入一个标识
    session label entered: "dump_sdb1-0"
    
     --------------------------------- end dialog ---------------------------------
    
    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 aubin:/sdb1
    xfsdump: dump date: Wed Dec  2 18:52:32 2020
    xfsdump: session id: 58b9d960-7a6e-4a6a-a174-d53b01090763
    xfsdump: session label: "dump_sdb1-0"
    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: 30592 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 27384 bytes
    xfsdump: dump size (non-dir files) : 3136 bytes
    xfsdump: dump complete: 79 seconds elapsed
    xfsdump: Dump Summary:
    xfsdump:   stream 0 /opt/dump_sdb1 OK (success)
    xfsdump: Dump Status: SUCCESS
    



    备份分区免交互

    xfsdump -f /opt/dump_passwd /dev/sdb1 -L dump_passwd -M sdb1



    指定文件、目录备份

    dump -s 文件路径 指定文件的顶级目录 对指定文件进行备份
    备份  /boot/grub2/grub.cfg文件  到/opt/dump_grub.cfg
    
    [root@aubin sdb1]# ls /boot/grub2
    device.map  grub.cfg                     grubenv  locale
    fonts       grub.cfg.1606577549.rpmsave  i386-pc
    
    
    [root@aubin sdb1]# xfsdump -f  /opt/dump_grub2    -s  grub2/grub.cfg  /boot    -L dump_grub2  -M boot
    xfsdump: using file dump (drive_simple) strategy
    xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsdump: level 0 dump of aubin:/boot
    xfsdump: dump date: Wed Dec  2 20:34:24 2020
    xfsdump: session id: 24e6f5ae-01a5-426b-b31f-582a731cd55c
    xfsdump: session label: "dump_grub2"
    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: 29632 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 29360 bytes
    xfsdump: dump size (non-dir files) : 5664 bytes
    xfsdump: dump complete: 1 seconds elapsed
    xfsdump: Dump Summary:
    xfsdump:   stream 0 /opt/dump_grub2 OK (success)
    xfsdump: Dump Status: SUCCESS
    
    
    [root@aubin sdb1]# ls /opt
    dump_grub2  dump_passwd  dump_sdb1  rh
    
    [root@aubin sdb1]# ll -h  /opt
    总用量 88K
    -rw-r--r--. 1 root root 29K 12月  2 20:34 dump_grub2
    -rw-r--r--. 1 root root 27K 12月  2 19:46 dump_passwd
    -rw-r--r--. 1 root root 27K 12月  2 18:53 dump_sdb1
    drwxr-xr-x. 2 root root   6 10月 31 2018 rh
    



    查看所有备份文件情况

    [root@aubin ~]# xfsdump -I



    删除分区~测试恢复

    查看备份文件目录
    [root@aubin ~]# ls /opt
    dump_passwd  dump_sdb1  rh
    
    
    查看挂载点/sdb1的内容
    [root@aubin ~]# cd /sdb1
    [root@aubin sdb1]# ls
    passwd  ssr  test  txt
    
    [root@aubin sdb1]# rm -rf ./*
    



    xfsrestore~分区

    1.格式 xfsrestore -f 备份文件名 要恢复的路径
    xfsrestore -I
    xfsrestore [-f 备份文件名] [-L S_label] [-s 指定目录/文件] 恢复目录(恢复到哪里)
    xfsrestore [-f 备份文件名] - r 恢复目录
    xfsrestore [-f 备份文件名] -i 恢复目录
    选项与参数

    -I:与xfsdump -I相同,都是查询备份数据的信息
    -f:后面接备份文件,也有可能是/dev/st0磁带机等特殊文件
    -L:每次备份时会标注的session label名称(-l参数可查询),可以通过这一名称来进行还原,更加清楚想要还原哪个文件。不过-L这一项也可以不填
    -s:后面接目录/文件,代表还原时只还原恢复制定的目录/文件,而不是全部还原
    -r:如果用文件来存储备份数据,则不需要这个选项。如果是使用磁带等来存储备份文件,则需要用此项来完成积累恢复还原
    -l(小写):进入交互模式,高级管理员使用,一般使用不到

    [root@aubin sdb1]# ll /opt/
    总用量 88
    -rw-r--r--. 1 root root 29360 12月  2 20:34 dump_grub2
    -rw-r--r--. 1 root root 27384 12月  2 19:46 dump_passwd
    -rw-r--r--. 1 root root 27384 12月  2 18:53 dump_sdb1
    drwxr-xr-x. 2 root root     6 10月 31 2018 rh
    
    [root@aubin sdb1]# ll /sdb1
    总用量 0
    
    
    [root@aubin sdb1]# xfsrestore -f  /opt/dump_sdb1     /sdb1
    xfsrestore: using file dump (drive_simple) strategy
    xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsrestore: searching media for dump
    xfsrestore: examining media file 0
    xfsrestore: dump description: 
    xfsrestore: hostname: aubin
    xfsrestore: mount point: /sdb1
    xfsrestore: volume: /dev/sdb1
    xfsrestore: session time: Wed Dec  2 18:52:32 2020
    xfsrestore: level: 0
    xfsrestore: session label: "dump_sdb1-0"
    xfsrestore: media label: "sdb1"
    xfsrestore: file system id: 6f40a5c9-35cb-489b-a6a5-09b3d1ca3b41
    xfsrestore: session id: 58b9d960-7a6e-4a6a-a174-d53b01090763
    xfsrestore: media id: bfb9981c-72ed-4a1d-90ca-c93564b95fb3
    xfsrestore: using online session inventory
    xfsrestore: searching media for directory dump
    xfsrestore: reading directories
    xfsrestore: 3 directories and 5 entries processed
    xfsrestore: directory post-processing
    xfsrestore: restoring non-directory files
    xfsrestore: restore complete: 2 seconds elapsed
    xfsrestore: Restore Summary:
    xfsrestore:   stream 0 /opt/dump_sdb1 OK (success)
    xfsrestore: Restore Status: SUCCESS
    
    
    [root@aubin sdb1]# ls /sdb1
    passwd  ssr  test  txt
    



    xfsrestore~单个文件

    [root@aubin /]# ls
    666  boot  etc   lib    media  opt   root  sbin  srv  tmp  usr
    bin  dev   home  lib64  mnt    proc  run   sdb1  sys  uol  var
    
    [root@aubin /]# cd ./var
    
    [root@aubin var]# ls
    account  cache  db     games   kerberos  local  log   nis  preserve  spool  tmp  yp
    adm      crash  empty  gopher  lib       lock   mail  opt  run       test   www
    
    
    [root@aubin var]# cp  -r /boot/grub2   ./test
    [root@aubin var]# ls ./test
    grub2
    
    [root@aubin /]# ls var/test/grub2
    device.map  fonts  grub.cfg  grub.cfg.1606577549.rpmsave  grubenv  i386-pc  locale
     
    删除 /var/test目录下所有文件
    [root@aubin /]# rm -rf /var/test/*
    [root@aubin /]# ll /var/test
    总用量 0
    
    [root@aubin /]# ls /boot/grub2
    device.map  fonts  grub.cfg  grub.cfg.1606577549.rpmsave  grubenv  i386-pc  locale
    
    查看备份文件目录opt
    [root@aubin /]# ls /opt
    dump_fff  dump_grub2  dump_passwd  dump_sdb1  rh
    
    注:还原某文件原样,必须得是用xfsdump备份的文件来还原
    [root@aubin /]# xfsrestore -f  /opt/dump_grub2   -s grub2  /var/test 
    xfsrestore: using file dump (drive_simple) strategy
    xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsrestore: searching media for dump
    xfsrestore: examining media file 0
    xfsrestore: dump description: 
    xfsrestore: hostname: aubin
    xfsrestore: mount point: /boot
    xfsrestore: volume: /dev/sda1
    xfsrestore: session time: Wed Dec  2 20:34:24 2020
    xfsrestore: level: 0
    xfsrestore: session label: "dump_grub2"
    xfsrestore: media label: "boot"
    xfsrestore: file system id: ec339b21-156e-4def-a0a8-3f41e06040a5
    xfsrestore: session id: 24e6f5ae-01a5-426b-b31f-582a731cd55c
    xfsrestore: media id: bf594c95-7c3f-4ea6-a541-3ba021524f10
    xfsrestore: using online session inventory
    xfsrestore: searching media for directory dump
    xfsrestore: reading directories
    xfsrestore: 2 directories and 24 entries processed
    xfsrestore: directory post-processing
    xfsrestore: restoring non-directory files
    xfsrestore: restore complete: 0 seconds elapsed
    xfsrestore: Restore Summary:
    xfsrestore:   stream 0 /opt/dump_grub2 OK (success)
    xfsrestore: Restore Status: SUCCESS
    
    [root@aubin /]# ls /var/test
    grub2
    
    对比没备份和备份过后占用内存的差距
    [root@aubin grub2]# du -s /boot/grub2
    8104	/boot/grub2
    [root@aubin grub2]# du -s /opt/dump_grub2
    32	/opt/dump_grub2
    





    xfsdump~增量备份

    [root@aubin /]# ls
    666  boot  etc   lib    media  opt   root  sbin  srv  tmp  usr
    bin  dev   home  lib64  mnt    proc  run   sdb1  sys  uol  var
    
    [root@aubin /]# tree /sdb1
    /sdb1
    ├── passwd
    ├── ssr
    │   └── txt
    ├── test
    └── txt
    
    2 directories, 3 files
    
    [root@aubin sdb1]# ls /opt
    111  dump_fff    dump_passwd  rh
    

    完全备份/sdb1 到/opt/dump_sdb0

    [root@aubin aubin]# xfsdump  -L  grup0   -M grup0  -f  /opt/dump_grub0    /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 aubin:/sdb1
    xfsdump: dump date: Thu Dec  3 10:55:00 2020
    xfsdump: session id: 41ccdb4b-05d3-4052-a63a-2d4601dbe707
    xfsdump: session label: "grup0"
    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: 30592 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 27384 bytes
    xfsdump: dump size (non-dir files) : 3136 bytes
    xfsdump: dump complete: 0 seconds elapsed
    xfsdump: Dump Summary:
    xfsdump:   stream 0 /opt/dump_grub0 OK (success)
    xfsdump: Dump Status: SUCCESS
    

    给//sdb1下增加内容,增量备份1(其他1-9备份同理)

    原文件
    [root@aubin sdb1]# ls /opt
    111  dump_fff    dump_passwd  dump_grub0  rh
    [root@aubin sdb1]# ls  /sdb1
    passwd  ssr  test  txt
    
    
    操作
    [root@aubin sdb1]# touch  s1 s2
    [root@aubin /]# tree /sdb1
    /sdb1
    ├── passwd
    ├── ssr
    │   └── txt
    ├── s1
    ├── s2
    ├── test
    └── txt
    
    2 directories, 3 files
    
    
    [root@aubin sdb1]# xfsdump   -l 1   -L  grup1   -M grup1  -f  /opt/dump_grub1    /sdb1 
    xfsdump: using file dump (drive_simple) strategy
    xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsdump: level 1 incremental dump of aubin:/sdb1 based on level 0 dump begun Thu Dec  3 10:55:00 2020
    xfsdump: dump date: Thu Dec  3 10:57:15 2020
    xfsdump: session id: 60ff85af-791d-4801-b21d-ac369e38193f
    xfsdump: session label: "grup1"
    xfsdump: ino map phase 1: constructing initial dump list
    xfsdump: ino map phase 2: pruning unneeded subtrees
    xfsdump: ino map phase 3: skipping (only one dump stream)
    xfsdump: ino map construction complete
    xfsdump: estimated dump size: 21440 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 22416 bytes
    xfsdump: dump size (non-dir files) : 0 bytes
    xfsdump: dump complete: 0 seconds elapsed
    xfsdump: Dump Summary:
    xfsdump:   stream 0 /opt/dump_grub1 OK (success)
    xfsdump: Dump Status: SUCCESS
    
    
    操作后的文件
    [root@aubin sdb1]# ls
    passwd  s1  s2  ssr  test  txt
    
    [root@aubin sdb1]# ls /opt
    111  dump_fff  dump_grub0  dump_grub1  dump_passwd  rh
    



    xfsdump~还原所有增量备份

    注:还原得先还原 完全备份0 --> 增量备份1 --> 增量备份2 --> 增量备份3 依次还原。

    原文件
    [root@aubin sdb1]# ls /opt
    111  dump_fff  dump_grub0  dump_grub1  dump_passwd  rh
    
    [root@aubin sdb1]# ls /sdb1
    passwd  s1  s2  ssr  test  txt
    
    
    操作
    [root@aubin aubin]# rm -rf /sdb1/*
    [root@aubin aubin]# tree /sdb1/
    /sdb1/
    
    0 directories, 0 files
    
    
    
    操作后的文件
    先还原 其完全备份文件
    [root@aubin aubin]# xfsrestore -f /opt/dump_grub0 /sdb1
    xfsrestore: using file dump (drive_simple) strategy
    xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsrestore: searching media for dump
    xfsrestore: examining media file 0
    xfsrestore: dump description: 
    xfsrestore: hostname: aubin
    xfsrestore: mount point: /sdb1
    xfsrestore: volume: /dev/sdb1
    xfsrestore: session time: Thu Dec  3 10:55:00 2020
    xfsrestore: level: 0
    xfsrestore: session label: "grup0"
    xfsrestore: media label: "grup0"
    xfsrestore: file system id: 6f40a5c9-35cb-489b-a6a5-09b3d1ca3b41
    xfsrestore: session id: 41ccdb4b-05d3-4052-a63a-2d4601dbe707
    xfsrestore: media id: 2b091d38-5a2a-4c9c-a446-36758bcca7d9
    xfsrestore: using online session inventory
    xfsrestore: searching media for directory dump
    xfsrestore: reading directories
    xfsrestore: 3 directories and 5 entries processed
    xfsrestore: directory post-processing
    xfsrestore: restoring non-directory files
    xfsrestore: restore complete: 0 seconds elapsed
    xfsrestore: Restore Summary:
    xfsrestore:   stream 0 /opt/dump_grub0 OK (success)
    xfsrestore: Restore Status: SUCCESS
    
    [root@aubin aubin]# tree /sdb1/
    /sdb1/
    ├── passwd
    ├── ssr
    │   └── txt
    ├── test
    └── txt
    
    2 directories, 3 files
    
    
    
    再次操作  还原其增量备份1
    [root@aubin aubin]# xfsrestore -f /opt/dump_grub1 /sdb1
    xfsrestore: using file dump (drive_simple) strategy
    xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
    xfsrestore: searching media for dump
    xfsrestore: examining media file 0
    xfsrestore: dump description: 
    xfsrestore: hostname: aubin
    xfsrestore: mount point: /sdb1
    xfsrestore: volume: /dev/sdb1
    xfsrestore: session time: Thu Dec  3 10:57:15 2020
    xfsrestore: level: 1
    xfsrestore: session label: "grup0"
    xfsrestore: media label: "grup0"
    xfsrestore: file system id: 6f40a5c9-35cb-489b-a6a5-09b3d1ca3b41
    xfsrestore: session id: 60ff85af-791d-4801-b21d-ac369e38193f
    xfsrestore: media id: cc0ecd2e-210b-47aa-8d12-fea1f8ba5171
    xfsrestore: using online session inventory
    xfsrestore: searching media for directory dump
    xfsrestore: reading directories
    xfsrestore: 1 directories and 6 entries processed
    xfsrestore: directory post-processing
    xfsrestore: restoring non-directory files
    xfsrestore: restore complete: 1 seconds elapsed
    xfsrestore: Restore Summary:
    xfsrestore:   stream 0 /opt/dump_grub1 OK (success)
    xfsrestore: Restore Status: SUCCESS
    
    [root@aubin aubin]# tree /sdb1
    /sdb1
    ├── passwd
    ├── s1
    ├── s2
    ├── ssr
    │   └── txt
    ├── test
    └── txt
    
    2 directories, 5 files
    

    参考文档

    当你的才华配不上你的野心,努力的时候到了!
  • 相关阅读:
    关于学习c++服务端的进度,一边更新,一边学习
    Ubuntu20.04 用git上传GitHub文件
    省赛菜鸡打铜记
    Filename too long unable to checkout working tree warning: Clone succeeded, but checkout failed.
    java 对象转Json字符串 --- 报declares multiple JSON fields named XXX 解决方法
    配置win10电脑右下角任务栏时间显示时分秒
    HTTP与HTTPS
    为人三会 口才三绝 修心三不
    1093
    java项目clone后不显示maven
  • 原文地址:https://www.cnblogs.com/xwdzj/p/14058046.html
Copyright © 2011-2022 走看看