利用dump和restore实现Linux的备份和还原

简介: 申明:本文为“老毛”原创,如需转载,请与作者联系。否则将视为侵权行为,作者将追究其法律责任。
申明:本文为“老毛”原创,如需转载,请与作者联系。否则将视为侵权行为,作者将追究其法律责任。
 
对于系统而言,我们可以有很多种办法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小。当然,对于企业服务器而言,备份的重要性是举足轻重。咱们今天就详细讨论一下 LINUX 中如何用 dump restore 实现备份和还原。
 
一, dump 的原理,优点及限制
dump restore 默认已经安装在 RHEL5 中,如果你使用的 Linux 中没有,可以自己去 google 中搜一下并下载安装。
使用 dump 命令时,它会建立一份自上次备份操作以来进行修改过的文件列表,然后把这些文件打包成一个单独的文件。在做备份时,需要指定一个备份级别,它是 0-9 之间的一个整数。级别为 N 的转储会对从上次进行的级别小于 N 的转储操作以来修改过的所有文件进行备份,而级别 0 就是完全备份。通过这种方式,可以很轻松的实现增量备份,差异备份,甚至每日备份。例如,第一次备份时可选择级别 0 (具体操作看后面),以后每天做增量备份时就可以每天依次使用级别 1 ,级别 2 ,级别 3 等等 … … ;当需要每天做差异备份时,可先选择级别 0 做完整备份,然后每天都使用同一大于 0 的级别就行了,比如说第二天用 5 ,第三天也用 5 ,第四天也一样。
使用 dump 的优点:
1 ,备份可以跨多卷磁带
2 ,能备份任何类型的文件,甚至是设备
3 ,备份时,文件的权限,宿主,宿组,修改时间等都会被保存
4 ,能够正确处理从未包含任何数据的文件块(孔洞文件)
5 ,能够做增量,差异备份
它也有不足:
1 ,每个文件系统必须单独转储备份
2 ,只有本地计算机的文件系统才能够转储备份( rdump rrestore 可用来弥补此项不足)
当然,使用 tar 也可以用来实现备份和还原,但 tar 只能在 Linux Unix 环境下使用,对于跨平台的环境, dump 使用起来个人感觉更方便一些。
如果有条件, dump 也可以将备份存储在磁带上。 Linux 通常用 /dev/st0 代表倒带设备,而用 /dev/nst0 代表非倒带设备,使用倒带设备存储时,当磁带用完它会自动倒带并接着存储,所以会覆盖以前的数据,这样就存在以前数据丢失的风险。这个地方咱们就不详细讨论了。
 
二, dump 的格式,常用参数及使用
格式: dump [-level#] [-acmMnqSuv] [-A file] [-B records] [-b blocksize]
             [-d density] [-D file] [-e inode#,inode#,...] [-E file]
             [-f file] [-h level] [-I nr errors] [-j zlevel] [-Q file]
             [-s feet] [-T date] [-y] [-z zlevel] filesystem
常用参数     Level :备份级别 0-9
            -B: 指定用来备份的磁带的长度,以 KB 为单位(有些磁带不支持以结束标志判断时,就需要使用到此参数
            -b :指定块大小,默认为 10
            -d :指定密度,默认为 1600BPI
            -D: 设定存储数据库的名称和路径,默认是 /etc/dumpdates 文件
            -e -E :与备份文件的 inodes 数有关的参数)
             -f :指定备份文件的路径和名称
             -u :更新数据库文件 /etc/dumpdates 
             -s :统计备份所需的空间,一般在备份前做,以防磁带或磁盘空间不足
举例:
dump   –0s /dev/sda1
      完整备份 /dev/sda1 前统计一下需多大容量
 
dump -0u –f /tmp/boot.dump /boot

  以完全备份的方式备份 /boot 分区到文件 /tmp/boot.dump, 并且更新 /etc/dumpdates 数据库文件。“ 0 ”代表的就是备份级别为完全备份。“ u” 更新数据库,会将文件的日期,存储级别,文件系统等信息都记录下来。如果从来都不使用 -u 参数,那么所有的存储都会变为级别 0 。因为,系统不会有先前备份过当前文件系统的记录。
      当以后更改了 /boot, 比如说内核升级后,如果再想备份,可以按下列方式:
      dump -1u –f /tmp/boot1.dump /boot
       这样就只会备份完全备份后有变化的文件(级别 1 大于 0 )。
      如果以后想做增量备份,就依次用级别 2 3 4… …
      如果想做差异备份,以后就一直用级别 1. 关于增量备份和差异备份的区别看看下图吧,不详细讲了:
三,查看备份文档中的文件及还原
查看备份文档中的文件和还原就需要用到另外一个工具, restore
1,   查看备份文档中的文件
-t 参数是查看的意思, -f 是指定要查看的备份文件。通过以上命令,就可以查看备份文件中备份了哪些文件。
1,   还原备份
还原备份的时候有两种方式可以选择,一种是完全还原,一种是有选择的部分还原。
咱们还是用前面的例子来看,如果你前面备份的 /boot 分区文件损坏了,这时候你想还原,可以按如下步骤:
-r 参数表示重建
 
如果只是一部分数据丢失了,那么可以使用参数 -i 通过交互方式来实现文件的选择性还原
这个地方我故意删掉了一个文件 initrd-2.6.18-53.el5.img
使用参数 -i 交互式,并指定备份文件。
通过?来查看可以使用的命令, ls 是列出备份文件的内容
通过 add 来选择要恢复的文件,选定后再 ls 的时候会标记为 *
通过 extract 还原选定的文件。
提示“ Specify next volume” 时填如 1 ,它表示是在单独一卷磁带(这里我用的是磁盘的空间)上进行的备份。下面一行提示选“ n ”,表示不是恢复整个文件系统,而是单个文件。
目录
相关文章
|
1月前
|
Shell Linux API
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
52 0
|
1月前
|
算法 Shell Linux
【Shell 命令集合 备份压缩 】Linux 处理lha格式 lha命令 使用指南
【Shell 命令集合 备份压缩 】Linux 处理lha格式 lha命令 使用指南
38 0
|
1月前
|
Shell Linux 编译器
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
34 0
|
1月前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
35 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
31 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 恢复由dump命令创建的备份文件 restore命令 使用指南
【Shell 命令集合 备份压缩 】Linux 恢复由dump命令创建的备份文件 restore命令 使用指南
34 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 将二进制文件转换为ASCII码 uuencode命令 使用指南
【Shell 命令集合 备份压缩 】Linux 将二进制文件转换为ASCII码 uuencode命令 使用指南
32 0
|
1月前
|
算法 Shell Linux
【Shell 命令集合 备份压缩 】Linux 解压缩ARJ格式 unarj命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解压缩ARJ格式 unarj命令 使用指南
27 0
|
1月前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩 tar命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩 tar命令 使用指南
29 0