Linux下用dump实现备份和还原
时间:2009-03-23 来源:sjhf
申明:本文为“老毛”原创,如需转载,请与作者联系。否则将视为侵权行为,作者将追究其法律责任。 对于系统而言,我们可以有很多种办法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小。当然,对于企业服务器而言,备份的重要性是举足轻重。咱们今天就详细讨论一下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 |