一、备份资料的考虑
1、造成系统损毁的原因:
a、硬件问题,例如:硬盘损坏。
b、软件问题,例如:手滑一下,在结果指令列里输入 rm -rf /home,造成家目录删掉了。
2、主机角色不同,备份任务则不同:
a、针对个人桌面计算机,使用整个系统备份,Norton的Ghost备份大师。因为数据量变化不大,所以备份频率方面也不需要非常的频繁。
b、针对主机有提供Internet服务的,例如论坛,随数据量不大,但每天都有数据量流入,备份频率需求的考虑很重要。
3、备份因素的考虑:备份哪些档案;选择哪些备份媒介;备份的方式;备份的频率;备份使用工具;
二、备份意义
1、备份分类:关键数据备份和完整备份(Full backup)。
2、a、操作系统本身需备份的档案:
/etc/整个目录 #预设的重要参数档都在其中
/home 整个目录 #用户家目录
/var/spool/mail #邮件目录
/boot #核心
/root #root根目录
/usr/local或者opt #自行安装过的套件位置
b、网络朋务的数据库方面备份,若我们假讴我们提供的软件都是使用原厂的RPM 安装的,所以要备份的数据文件有:
软件本身的配置文件,例如:/etc/ 整个目录,/usr/local/ 整个目录
软件朋务提供的数据,以 WWW 及 MySQL 为例:
WWW 资料:/var/www 整个目录或 /srv/www 整个目录,及系统的用户家目录
MySQL : /var/lib/mysql 整个目录
其他在 Linux 主机上面提供的服务之数据库档案。
c、无法备份全部数据时,建议备份:
/boot
/etc
/home
/root
/usr/local(或是/opt及/srv等)
/var (注:其中的暂存目录可以不备份)
不需要备份的目录:
/dev :这个随便你要不要备份
/proc:这个真的不需要备份啦!
/mnt 或 /media:如果你没有在这个目录内放置你自己系统的东西,也不需要备份
/tmp :干嘛存暂存档!不需要备份!
3、备份用存储媒体的选择:
1、异地备援系统,由于当前带宽不足问题,采取的策略是仅将最重要的数据给传输备份。
2、近端备份:移动硬盘备份;磁带机备份;
注:特别留意的是磁带机,如果经费允许,否则的话就买IDE或SATA接口的硬盘。
装置代号:
光驱: /dev/cdrom (其实应该是 /dev/sdX 戒 /dev/hdX)
磁带机: /dev/st0 (SCSI 界面), /dev/ht0 (IDE 界面)
软盘驱劢器: /dev/fd0, /dev/fd1
硬盘机: /dev/hd[a-d][1-16] (IDE), /dev/sd[a-p][1-16] (SCSI/SATA)
外接式 USB 硬盘机: /dev/sd[a-p][1-16] (不 SCSI 相同)
打印机: /dev/lp[0-2]
4、备份的方式:
关键数据备份:不明当机导致系统损毁时,短时间内无法恢复,因为涉及到linux distribution 重装,数据新旧版本差异性,建妥后的相关测试,至少花一周以上,所以使用此方式的主机一般不是在每天24不间断的提供服务。
完整备份:若硬件出问题损毁时只要将完整备份倾倒回硬盘,事情搞定,无需重装,故很多企业提供重要服务的主机进行完整备份。缺点是系统用的越久,数据量越大,所需花费时间和储存媒体使用都会相当麻烦,完整备份不能每天进行。
如果需要每天备份数据,则有两种方式:
1、累积备份(Incremental backup):
定义:系统第一次完整备份,第二次备份比较系统与备份文件的差异,仅备份有差异档案,依次类推。
缺点:还原比较麻烦,具体为先还原第一次完整备份,之后的累积备份文件依次还原。
使用备份工具:
dump:
例子:使用 dump 将/home 完整癿备份到 /backupdata 上
#1、完整备份
[root@www ~]dump -0u -f /backupdata/home.dump /home
#2、 第一次迚行累积备份
[root@www ~]# dump -1u -f /backupdata/home.dump.1 /home
其他备份工具(可完整备份,不可直接累积备份的工具):
例子1:
# 1. 用 dd 来将 /dev/sda 备份到完全一模一样的 /dev/sdb 硬盘上:
[root@www ~]# dd if=/dev/sda of=/dev/sdb
# 由亍 dd 是读取扇区,所以 /dev/sdb 这颗磁盘可以不必格式化!非常的方便!
# 叧是你会等非常非常久!因为 dd 的速度比较慢!
# 2. 使用 cpio 来备份与还原整个系统,假设储存媒体为 SATA 磁带机:
[root@www ~]# find / -print | cpio -covB > /dev/st0 <==备份到磁带机
[root@www ~]# cpio -iduv < /dev/st0 <==还原
#3./backupdata 是个独立的文件系统, 你想要将整个系统通通备份起来时,可以这样考虑:将不必要的 /proc, /mnt, /tmp 等目录不备份,其他的数据则予以备份:.
[root@www ~]# tar --exclude /proc --exclude /mnt --exclude /tmp \
> --exclude /backupdata -jcvp -f /backupdata/system.tar.bz2 /
2、差异备份:
定义:系统第一次完整备份,以后每次备份都是与原始的完整备份比较的差异结果。
缺点:系统运作越久,离完整备份时间越长,并且磁盘占用量会比累积备份大;
优点:还原速度快,只需还原完整备份和最近一次的差异备份即可。
例子:
1、 叧有在比 2009-06-01 还要新的档案,在 /home 底下的档案才会被打包进home.bz2 中
[root@www ~]# tar -N '2009-06-01' -jpcv -f /backupdata/home.tar.bz2 /home
注意:目录还是会被记录下来,叧是目录内的旧档案就不会备份
3、镜像备份(rsync ):
[root@www ~]# rsync -av 来源目录 目标目录
# 1. 将 /home/ 镜像到 /backupdata/home/ 去
[root@www ~]# rsync -av /home /backupdata/
# 此时会在 /backupdata 底下产生 home 这个目录来!
[root@www ~]# rsync -av /home /backupdata/
# 再次进行会快很多!如果数据没有更动,几乎不会进行任何动作!
4、关键数据备份
例子:依据日期来备份 mysql 癿数据库
[root@www ~]# tar -jpcvf mysql.`date +%Y-%m-%d`.tar.bz2 /var/lib/mysql
5、备份实例(网站论坛):
主要备份内容:/home和网页数据(10G+);
备份策略:备份分两部分,一是每日备份经常性变动的重要数据;二是每周备份不常动的信息。
1、主机硬件:使用一个独立的Filesystem来存储备份数据,此filesystem挂载到/backup当中;
2、每日进行:目前仅备份数据库数据(使用的是MYSql);
3、每周进行:包括/home,/var,/etc,/boot,/usr/local等目录与特殊服务的目录;
4、自动处理:利用/etc/crontab来自动提供备份的进行;
5、异地备援:每月定期将数据分别备份(a)刻录到光盘上面(b)使用网络传输到另一台机器上面。