Linux系统备份与恢复--概述
1 什么是备份?
简言之,备份就是将重要的数据拷贝出来,复制到其他位置,以避免数据的彻底丢失,导致工作的无法继续。有了备份,如果不慎将原数据丢失了,还可以通过拷贝备份数据来进行还原。
备份的基本原则:不要把鸡蛋都放到同一个篮子里!也就是说:
(1)对于个人用户而言,我们把我们电脑里的我们觉得比较重要的数据拷贝一份到移动硬盘里,再刻录一份到光盘里,这样似乎就已经是比较全面的了;
(2)但是对于企业用户而言,上述做法还远远不够,因为这些备份的数据还是和原数据存在于同一区域内(即同一个房间),也就是说它们在物理地址上还是在一起的,万一这个房间出了火灾啊,坍塌啊等等之类的毁损,那么这些保存的数据也就都会丢失了。
(3)所以,企业级服务器需要进行异地备份。
2 知道了我们为什么要进行备份了,再来看看在Linux系统中,我们到底需要备份哪些具体的数据?
2.1 Linux系统需要备份的数据
(1)/root/目录:重要数据,很多的操作集都是保存在root的家目录中的,为了避免系统发生崩溃造成数据彻底丢失,这个目录中的数据是需要备份的。
(2)/home/目录:普通用户的家目录。同样也有很多的操作是保存在这个目录中的,比如说搭建的文件服务器,那么文件的上传位置一般来说就是普通用户的家目录。
(3)/var/spool/mail/目录:邮件服务器目录。邮件的默认保存目录。
(4)/etc/目录:系统重要的配置文件保存目录。
(5)其他目录:这些目录指的是你觉得对你来说比较重要的数据存放目录,比如说日志目录(/var/log)等。
注意:在一些重要的网络当中,对一些重要的拓扑节点,我们需要进行实时备份,而且需要采用心跳监控。一旦主服务器宕掉,从服务器马上可以实现顶替。
2.2 安装服务的数据
如果服务器安装了一些重要的服务,那么同样的,我们也需要对其进行相应的备份操作,比如说下面列举的两个常见服务:
(1)apache需要备份的数据:
1)配置文件:保存了所有的功能修改操作;
2)网页主目录:整个的网站都在里面;
3)日志文件:如果有足够的空间,最好是把日志文件也做相应的备份。
(2)mysql需要备份的数据:
数据库服务需要备份的就是数据,所以需要备份保存数据的目录。
1)源码包安装的mysql:/usr/local/mysql/data/;
注意:5.5及以上版本的mysql的数据默认保存在data目录下,5.5之前的版本是默认保存在var目录下的。
2)RPM包安装的mysql:/var/lib/mysql/;
进行上述备份之后,一旦mysql出现问题,只需要再安装一个同样的mysql版本,搭建一个一模一样的环境,再把备份的数据目录拷贝过来,就能恢复所有的数据。
以上内容仅仅只是介绍了需要进行备份的一些最基本的目录,但是在实际的备份工作中,一般需要备份的文件目录会更多一些。
3 备份策略
3.1 完全备份
完全备份就是指把所有需要备份的数据全部备份。当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。
完全备份的好处是恢复很快,但是备份的过程最慢,占用的空间最大,因为每一次备份都要进行完整的备份。
3.2 增量备份
增量备份是指每次备份都只备份基于前一次备份之后新增的那一部分数据。也就是说:第一次进行备份的时候,需要对原始数据进行一个完全备份;然后到了第二次进行备份的时候,只需要备份在原始数据的基础上新增那一部分数据;第三次进行备份的时候只需要备份在第二次备份之后新增的数据。。。。以后以此类推进行备份操作。
增量备份的好处是备份的数据量最少,占用的内存空间也最少,但是进行数据恢复的时候比较地麻烦,因为首先要先恢复原始数据,然后再恢复第一次备份的数据,再恢复第三次备份的数据。。。。有多少个增量备份就要恢复多少次,可能会比较麻烦。
3.3 差异备份
差异备份是基于上述两种备份策略的折中办法。跟增量备份有点类似,区别在于:
(1)增量备份,每一次备份的都是备份基于上一次备份之后新增的数据;
(2)而差异备份,每一次备份的都是备份基于第一次完全备份之后新增的数据。也就是:
1)第一次进行备份的时候,需要对原始数据进行一个完全备份;
2)然后到了第二次进行备份的时候,只需要备份在原始数据的基础上新增那一部分数据;
3)但是从第三次进行备份开始,需要进行备份的数据不仅包括在第二次备份之后新增的数据,还包括第二次已经备份的数据;
4)第四次进行备份的时候需要备份在第三次备份之后新增的数据,以及包括第二次备份在内,到当前一次备份之前,已经备份过的所有数据。。。。以后以此类推进行备份操作。
差异备份在恢复上比增量备份要快的多,但是其占用空间在备份次数逐渐增多的情况下,只是比完全备份少一点点,就少在第一次备份的完全备份那一部分上。
在实际的使用中,更多的还是使用完全备份和增量备份,差异备份使用的并不多,了解有这种备份策略的存在就可以了。