红联Linux门户
Linux帮助

RHEL6服务器dump备份和restore恢复以及dd的使用

发布时间:2015-05-11 22:06:20来源:linux网站作者:sbwolftotem

dump备份

restore  恢复

dump的特点:

(1)只能针对整个分区
(2)能够支持绝大部分文件类型,包括设备文件,也能保留原属性
(3)支持镜像备份和增量备份


1、软件安装
[root@rootbug ~]#yum install dump -y


2、查看是否安全成功
[root@rootbug ~]# rpm -qf `which restore`
dump-0.4-0.6.b42.el6.x86_64

[root@rootbug ~]# rpm -qf `which dump`

dump-0.4-0.6.b42.el6.x86_64


3、备份级别:

通过备份级别来支持增量和镜像备份
0-9级别(现在的版本可以使用任意数字),
0代表的是全备(镜像备份),后面的数字代表递增的增量备份

1      2    3    4    5    6    7  周期

全    增    增    累  增  增  累

0      1      2    1    2    3    2  备份级别


4、测试

[root@rootbug ~]# dd if=/dev/zero of=/quota/dump0 bs=1M count=10
[root@rootbug~]# dump -0u /dev/sda12 -f /backup/sda12_0_1.dump
--0级别全备

[root@rootbug~]# dd if=/dev/zero of=/quota/dump1 bs=1M count=10

--在sda12挂载的quota目录里建立一个10M大小的文件dump1

[root@rootbug~]# dump -1u /dev/sda12 -f /backup/sda12_1_2.dump
--1级别增备,可以查看备份的文件为10M,所以验证了增量备

[root@rootbug~]# dd if=/dev/zero of=/quota/dump2 bs=1M count=10

--再建立10M的文件dump2

[root@rootbug~]# dump -2u /dev/sda12 -f /backup/sda12_2_3.dump
--2级别增备,还是10M

[root@rootbug~]#dd if=/dev/zero of=/quota/dump3 bs=1M count=10

--再建立10M的文件dump3

[root@rootbug~]#dump -1u /dev/sda12 -f /backup/sda12_1_4.dump

--1级别备份,会发现30M,表示它备份了dump1,dump2,dump3这三个10M的文件,所以验证了它是备第一次备份的0级别到这次之间的数据;也就是累计增量备

[root@rootbug~]#dd if=/dev/zero of=/quota/dump4 bs=1M count=10

[root@rootbug~]#dump  -2u /dev/sda12 -f /backup/sda12_2_5.dump
[root@rootbug~]#dd if=/dev/zero of=/quota/dump5 bs=1M count=10

[root@rootbug~]#dump  -3u /dev/sda12 -f /backup/sda12_3_6.dump
[root@rootbug~]#dd if=/dev/zero of=/quota/dump6 bs=1M count=10

[root@rootbug~]#dump  -2u /dev/sda12 -f /backup/sda12_2_7.dump
使用下面的命令去验证,一切OK

[root@rootbug~]#restore -t -f  sda12_0.dump
--查看备份集里备份的文件用-t参数


5、如何将备份命令写成脚本,让它按照规定的时间去运行自动备份?

[root@rootbug~]#vim /tmp/1.sh

#!/bin/bash

mkdir /backup/`date +%Y%m%d`

dump -0u /dev/sda12 -f /backup/`date +%Y%m%d`/sda12_0_1.dump

[root@rootbug~]#vim /tmp/2.sh

#!/bin/bash

dump -1u /dev/sda12 -f /backup/`date -d "-1 days" +%Y%m%d`/sda12_1_2.dump

[root@rootbug~]#vim /tmp/3.sh

#!/bin/bash

dump -2u /dev/sda12 -f /backup/`date -d "-2 days" +%Y%m%d`/sda12_2_3.dump

[root@rootbug~]#vim /tmp/4.sh

#!/bin/bash

dump -1u /dev/sda12 -f /backup/`date -d "-3 days" +%Y%m%d`/sda12_1_4.dump

[root@rootbug~]#vim /tmp/5.sh

#!/bin/bash

dump -2u /dev/sda12 -f /backup/`date -d "-4 days" +%Y%m%d`/sda12_2_5.dump

[root@rootbug~]#vim /tmp/6.sh

#!/bin/bash
dump -3u /dev/sda12 -f /backup/`date -d "-5 days" +%Y%m%d`/sda12_3_6.dump

[root@rootbug~]#vim /tmp/7.sh
#!/bin/bash

dump -2u /dev/sda12 -f /backup/`date -d "-6 days" +%Y%m%d`/sda12_2_7.dump

--写完7个脚本,然后都改成755权限

[root@rootbug~]#chmod 755 /tmp/*.sh

[root@rootbug~]# crontab -e
--root用户来编辑自己的时间任务

01 2 * * 1 sh /tmp/1.sh01 2 * * 2 sh /tmp/2.sh

01 2 * * 3 sh /tmp/3.sh01 2 * * 4 sh /tmp/4.sh

01 2 * * 5 sh /tmp/5.sh01 2 * * 6 sh /tmp/6.sh

01 2 * * 7 sh /tmp/7.sh

[root@rootbug~]#/etc/init.d/crond resetart


6、恢复

restore
(1)因为整个分区崩溃,需要恢复,那么在这里最好重新格式化一下这个分区,再重新挂载
(2)开始restore恢复cd /恢复路径  --先cd到要恢复的路径,再一级一级恢复,不能跳级

[root@rootbug quota]# restore -r -f /backup/sda12_0_1.dump
--先恢复0级别全备

[root@rootbug quota]# restore -r -f /backup/sda12_1_4.dump
--因为做了累计增量备份,所以直接恢复累计增量的备份文件,就把dump1,dump2,dump3恢复回来了

[root@rootbug quota]# restore -r -f /backup/sda12_2_7.dump

--然后直接把4-7的累计增量给恢复回来,dump4,dump5,dump6就恢复回来了


7、dd - convert and copy a file

dd  指定大小地拷贝一个文件,并在拷贝的同时可以进行一些转换

(1)备份mbrdd if=/dev/sda of=/backup/mbr.backup  bs=1  count=512

删除mbr

dd if=/dev/zero  of=/dev/sda bs=1 count=512

就会发现fdisk -l 看不到分区,一重启系统就启不来了
恢复:dd if=/backup/mbr.backup  of=/dev/sda

(2)备份整个硬盘

dd if=/dev/sda of=/dev/sdb

--把/dev/sda的数据备份到/dev/sdb

恢复:dd if=/dev/sdb of=/dev/sda

dd if=/dev/sda of=/backup/full.backup
--把/dev/sda的数据备份成一个文件

恢复:dd if=/backup/full.backup of=/dev/sda

(3)备份软盘

dd if=/dev/fd0 of=/backup/fd0.backup  bs=1  count=1440

恢复:dd if=/backup/fd0.backup of=/dev/fd0

(4)从光盘拷贝iso镜像

dd if=/dev/cdrom  of=/xxx.iso
(5)从内存里拷贝资料到磁盘
dd if=/dev/mem  of=/backup/mem.bin

特殊应用:
(6)销毁磁盘数据

dd if=/dev/urandom of=/dev/sda
--随机数填充磁盘

(7)修复硬盘,当硬盘长时间不使用  dd if=/dev/sda  of=/dev/sda8,raw设备(裸设备)或者lvm数据迁移等

(8)备份分区表 dd if=/dev/sda of=/backup/partition.bak bs=1 count=64 skip=446

(9)删除分区表 dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446

(10)恢复分区表 dd if=/backup/partition.bak of=/dev/sda bs=1 count=64 seek=446


Linux dump命令参数及用法详解-Linux备份文件命令:http://www.linuxdiyf.com/linux/3643.html

使用dump restore方式快速备份恢复FreeBSD系统:http://www.linuxdiyf.com/linux/2598.html

Linux服务器备份工具(tar,cpio,dump):http://www.linuxdiyf.com/linux/10260.html