服务器数据的安全性一直都是服务器日常管理的重中之重。Linux服务器虚拟化虽然以其高度可靠的作业系统而闻名,不过系统失效仍然可能发生。可能因为硬体故障,电源中断,或其他不可预料的问题。更常见的这 些问题是来自人为的错误,不当的变动,甚至因为删除重要的档案。

  当服务器出现了问题而无法正常运转时,通过备份来还原服务器系统成为了代价最小的修复服务器错误的方法。于是,作为一个服务器管理人员,了解各种服务器备份的方案以及如何在各种情况下有选择性的实施备份方案变得尤为重要。


  首先介绍服务器数据备份的三种方式:完全备份、差异备份以及增量备份

  1、完全备份(Full Backup)

  备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份。换言之,清除存档属性。

  完全备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。实际应用中就是用一盘磁带对整个系统进行完全备份,包括其中的系统和所有数据。这种备份方式最大的好处就是只要用一盘磁带,就可以恢复丢失的数据。因此大大加快了系统或数据的恢复时间。然而它的不足之处在于,各个全备份磁带中的备份数据存在大量的重复信息;另外,由于每次需要备份的数据量相当大,因此备份所需时间较长。  

  2、差异备份(Differential Backup)  

  备份自上一次完全备份之后有变化的数据。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,也即备份后不标记为已备份文件。换言之,不清除存档属性。

  差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全备份和最后一次差异备份进行恢复。

  3、增量备份 (Incremental Backup )

  备份自上一次备份(包含完全备份、差异备份、增量备份)之后有变化的数据。增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存档属性。

  增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。


  通过以上的概念我们能够发现,差异备份与增量备份的区别在于它们备份的参考点不同:前者的参考点是上一次完全备份、差异备份或增量备份,后者的参考点是上一次完全备份。

  这里有两个方案供选择:

  1、完全备份与差异备份结合(建议使用)

    以每周数据备份计划为例,我们可以在星期一进行完全备份,在星期二至星期五进行差异备份。如果在星期五数据被破坏了,则你只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较多的时间,但还原数据使用较少的时间。

  2、完全备份与增量备份结合

     以每周数据备份为例,在星期一进行完全备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则你需要还原星期一正常的备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较少的时间,但还原数据使用较多的时间。


  于是我们开始思考如何有选择性的备份数据。

  服务器虚拟化通过将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,将CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力,从而得到了更多的应用。

  目前使用最多的服务器虚拟化供应商为VMware,VMware虚拟机提供了VMware data recovery这个插件来备份虚拟服务器,当然,也可以使用虚拟机的快照功能,来保存服务器的某一状态,从而在服务器发生问题时,能够还原恢复服务器状态。

  还有一种方法,与机器本身是否虚拟化无关,而与系统有关。在Linux服务器中,可以使用"tar"命令来备份系统及数据。其实,"tar"命令就是一个压缩/解压缩的一个过程。

  可以通过man命令或者--help来查看tar命令的说明:

  

  这里提供一条备份根目录的通用指令,具体需要依照情况更改:

tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

  其中:

  cvpzf      表示创建一个压缩文档,给其赋予保存权限,并且使用"gzip"方式来压缩。如果想用"Bzip"方式压缩,可以将"z"更换为"j":"cvpzf" --> "cvpjf"。

  backup.tgz  表示在当前目录新建一个backup.tgz文件作为压缩载体

  /       表示备份目录为根目录 "/"

  --exclude="xxx" 表示如果不想备份某一个文件或文件夹xxx,则可以用"--exclude='xxx' "来将该目录剔除备份目录

  恢复的命令为:

 tar xvpfz backup.tgz -C /

  如果使用了"Bzip"方式备份,则命令为:

tar xvpfj backup.tar.bz2 -C /

【随笔】Linux服务器备份相关的更多相关文章

  1. 查看linux服务器CPU相关

    查看linux服务器CPU相关: 1.查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2.查看 ...

  2. Linux服务器搭建相关教程链接整理

    Linux: Linux 教程 | 菜鸟教程 linux下如何添加一个用户并且让用户获得root权限 - !canfly - 博客园 Git: 在 Linux 下搭建 Git 服务器 - 黄棣-dee ...

  3. linux服务器的相关信息查看(端口占用,cpu、内存占用,防火墙,系统信息,vim编辑器使用等)

    一.端口占用情况   https://www.cnblogs.com/CEO-H/p/7794306.html (1)查看所有端口.进程的使用情况:netstat -tunlp (2)查看某一端口的使 ...

  4. SecureCRT远程连接Linux服务器及相关配置

    这里的连接采用的是SSH2协议,关于SSH2协议可百度 一.连接不上可能的原因 1)服务器防火墙iptables /etc/init.d/iptables stop 2)SSH服务有问题 3)客户端到 ...

  5. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  6. Java 连接远程Linux 服务器执行 shell 脚本查看 CPU、内存、硬盘信息

    pom.xml jar 包支持 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch& ...

  7. [转帖]服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue

    服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue https://ywnz.com/linuxyffq/5270.html 改天试用一下. ...

  8. Linux服务器数据备份恢复策略

    一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...

  9. Linux服务器的常用备份方法

    系统备份是系统管理工作中十分重要的一个环切,本文详细介绍了各种Linux系统的备份方法,相信对大家的日常管理工作有所帮助. 备份是一项重要的工作,但是很多人没有去做.一旦由于使用不当造成数据丢失,备份 ...

随机推荐

  1. php 判断文件或目录是否存在

    判断文件或目录是否存在有自带的函数 file_exists:文件是否存在 $file = "check.txt"; if(file_exists($file)) {     ech ...

  2. MAXIMO-修改菜单

    MAXIMO菜单修改 模块: select * from MAXMODULES; -- 查询模块 一级菜单(应用程序):  select * from MAXMENU where MENUTYPE=' ...

  3. iOS 6.0之后支持一个页面横屏的方法

    拿两个页面举例子: 0.开启旋转: 1.第一个界面实现以下方法 /** * 默认显示的方向,preferredInterfaceOrientationForPresentation必须返回一个支持的接 ...

  4. sublime 关闭自动更新

    第一步: 点击菜单栏“Preferences”=> "Settings-User" 进入个人参数设置页面: 第二步: 在大括号内插入如下代码:"update_che ...

  5. javascript对象引用与赋值

    avascript对象引用与赋值 <script type="text/javascript"> //例子一: 引用 var myArrayRef = new Arra ...

  6. 100 Door Puzzle

    问题重述: There are 100 doors in a long hallway. They are all closed. The first time you walk by each do ...

  7. HttpWebRequest请求时无法发送具有此谓词类型的内容正文。

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl); //--需要封装的参数 request.CookieConta ...

  8. 各版本CRM所需端口号

    以下是微软官方提供的CRM端口号列表,收藏一下: 4.0 :https://msdn.microsoft.com/en-us/library/dd979226(v=crm.6).aspx This s ...

  9. 最近使用JQuery Easyui 碰到的几个奇怪问题

    最近项目想尝试Easyui来做做前端界面,但是刚开始就碰到几个问题,记录下来,免得忘了. 1. 点击添加或修改按钮后,弹出窗体,窗体内容参加“href”属性远程加载 问题:第一次弹出窗体正常,但是再次 ...

  10. add number

    // io.cpp #include <iostream> int readNumber() { std::cout << "Enter a number: &quo ...