redhat labs之dump备份与restore恢复
一、dump工具
在RHEL Backup and Restore Assistant上提供的备份恢复工具有dump、tar、cpio、rsync和dd。本篇就先从dump说起。在其相关页面上有这么一句‘Command Dump is the official tool provided by Red Hat to address backing up the ext2, ext3, and ext4 file systems.’ —-官方提提供的,针对ext相关文件系统的备份工具。其支持将备份文件备到磁带、存储和本地。其用法如下:
1# dump [-0123456789ackMnqSu [-A file ] ] files-to-dump
注:注意该工具是针对挂载点的,而对于挂载下的子目录是不行的。 备份的时候一般是指定分区名,也可以使用挂载点名称。使用示例如下
1# 一般使用/dev/sda1这样的用户去备,使用/boot这样也可以成功
2[root@361way ~]# dump -u0 /boot -f /opt/boot.dump
3 DUMP: Date of this level 0 dump: Mon Jul 2 17:11:43 2018
4 DUMP: Dumping /dev/sda1 (/boot) to /opt/boot.dump
5 DUMP: Label: none
6 DUMP: Writing 10 Kilobyte records
7 DUMP: mapping (Pass I) [regular files]
8 DUMP: mapping (Pass II) [directories]
9 DUMP: estimated 225470 blocks.
10 DUMP: Volume 1 started with block 1 at: Mon Jul 2 17:11:46 2018
11 DUMP: dumping (Pass III) [directories]
12 DUMP: dumping (Pass IV) [regular files]
13 DUMP: Closing /opt/boot.dump
14 DUMP: Volume 1 completed at: Mon Jul 2 17:11:49 2018
15 DUMP: Volume 1 226080 blocks (220.78MB)
16 DUMP: Volume 1 took 0:00:03
17 DUMP: Volume 1 transfer rate: 75360 kB/s
18 DUMP: 226080 blocks (220.78MB) on 1 volume(s)
19 DUMP: finished in 3 seconds, throughput 75360 kBytes/sec
20 DUMP: Date of this level 0 dump: Mon Jul 2 17:11:43 2018
21 DUMP: Date this dump completed: Mon Jul 2 17:11:49 2018
22 DUMP: Average transfer rate: 75360 kB/s
23 DUMP: DUMP IS DONE
24# 挂载点下的目录不成功
25[root@361way ~]# dump -u0 /etc -f /opt/etc.dump
26 DUMP: You can't update the dumpdates file when dumping a subdirectory
27 DUMP: The ENTIRE dump is aborted.
28# boot能成功是因为其是一个单独的挂载点
29[root@361way ~]# df -h|grep boot
30/dev/sda1 4.8G 230M 4.4G 5% /boot
上面使用的参数u,是在/etc/dumpdates里记录备份(默认记录最近的三条),其里面记录的结果类似如下:
1[root@361way ~]# cat /etc/dumpdates
2/dev/sda1 0 Mon Jul 3 17:11:43 2017 +0800
二、dump备份级别
从上面第一部分的示例也可以看出,其支持0-9种备份策略,其中0是全量备份,1-9是增量备份,用哪个并没有区别,哪么差异备份呢?dump的差异备份非常有意思,可以用一个游戏形容 —- 开心消消乐。看下图:
我个面做了个一周备份的表格,可以看到当1遇到后面的1时,周四的备份就会把从周2到周四所有的备份进行合并,即差异备份(和周一全量的差异)。因为周2的备份被合并了,所以周五的备份级别2还是增量备份,直到周日,备份级别2又出现了一次,所以又是差异常备份。
可以通过如下步骤做一个测试:
1[root@361way opt]# df -h|grep sda1
2#全备
3[root@361way opt]# dump -0u /dev/sda1 -f /opt/sda1_0.dump
4[root@361way opt]# du sda1_0.dump -sh
5#增量
6[root@361way opt]# dd if=/dev/zero of=/boot/dump1 bs=1M count=20
7[root@361way opt]# dump -1u /dev/sda1 -f /opt/sda1_1.dump
8[root@361way opt]# du sda* -sh
9#增量
10[root@361way opt]# dd if=/dev/zero of=/boot/dump2 bs=1M count=30
11[root@361way opt]# dump -2u /dev/sda1 -f /opt/sda1_2.dump
12[root@361way opt]# du sda* -sh
13#差异
14[root@361way opt]# dd if=/dev/zero of=/boot/dump3 bs=1M count=10
15[root@361way opt]# dump -1u /dev/sda1 -f /opt/sda1_3.dump
16[root@361way opt]# du sda* -sh
通过查看每次的备份文件大小就可以看出端倪。当然如果你觉得还是有疑问也没关系,还可以通过restore还原验证我们的推论。
三、restore恢复
还是接上一步的实验,我们把/boot下的所有内容干掉,通过备份sda1_0.dump和/opt/sda1_3.dump 两个文件就能完成所有数据的还原,如下:
1[root@361way boot]# history |tail -9|grep -v tail
2 1009 dump -0u /dev/sda1 -f /opt/sda1_0.dump
3 1010 dd if=/dev/zero of=/boot/dump1 bs=1M count=20
4 1011 dump -1u /dev/sda1 -f /opt/sda1_1.dump
5 1012 dd if=/dev/zero of=/boot/dump2 bs=1M count=30
6 1013 dump -2u /dev/sda1 -f /opt/sda1_2.dump
7 1014 dd if=/dev/zero of=/boot/dump3 bs=1M count=10
8 1015 dump -1u /dev/sda1 -f /opt/sda1_3.dump
9# 备份还原测试
10[root@361way boot]# rm -rf /boot/*
11[root@361way boot]# restore -rf /opt/sda1_0.dump
12[root@361way boot]# restore -rf /opt/sda1_3.dump
当然,这里是系统都好的情况下。如果系统出问题了怎么办?道理一样,重启进入修复模式。把有问题的分区直接格式化(我有备份我怕啥),使用之前备份好的文件通过restore命令还原,还原完成后,直接重启即可。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/dump-restore/5719.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.