备份程式


备份程式

文章插图
备份程式在信息技术与数据管理领域 , 备份指将档案系统或资料库系统中的数据加以複製;一旦发生灾难或错误操作时 , 得以方便而及时地恢复系统的有效数据和正常运作 。备份程式是指系统中对数据进行备份的程式 。备份程式是系统中一个基本程式 。例如 , 在资料库系统中 , 为了保证数据安全 , 会经常使用备份程式对数据进行备份 。
基本介绍中文名:备份程式
外文名:stand-by program
学科:计算机
定义:对数据进行备份的程式
有关术语:备份
领域:计算机系统
简介备份程式是指系统中对数据进行备份的程式 。在系统运行会遇到很多无法预测的情况 , 如果不使用备份程式备份数据 , 可能会带来非常严重的后果 , 为系统的安全 , 定期使用备份程式进行备份是有必要的 , 应该是系统基本功能之一 。对于不同数据 , 备份程式在功能可能会有所差别 。备份概述备份:为应付档案、数据丢失或损坏等可能出现的意外情况 , 将电子计算机存储设备中的数据複製到磁带等大容量存储设备中 。最好将重要数据製作三个 , 或三个以上的备份 , 并且放置在不同的场所 , 以利日后回存之用 。备份种类全部备份(Full Backup) , 即把硬碟或资料库内的所有档案、资料夹或数据作一次性的複製 。增量备份(Incremental Backup) , 指对上一次全部备份或增量备份后更新的数据进行备份 。差异备份(Differential backup) 差异备份提供运行完整备份后变更的档案的备份选择式备份 , 对系统的一部分进行备份 。冷备份:系统处于停机或维护状态下的备份 。这种情况下 , 备份的数据与系统中此时段的数据完全一致 。热备份:系统处于正常运转状态下的备份 。这种情况下 , 由于系统中的数据可能随时在更新 , 备份的数据相对于系统的真实数据可有一定滞后 。各种数据处理的技术在实施备份的过程中 , 可以对数据进行各种处理 , 这些不同的处理方式可以改善备份速度 , 恢复速度 , 增加数据安全性 , 提升存储介质的利用率 。数据压缩技术(Compression):通过各种机制来降低备份数据的大小 , 以便占用更少的存储空间 , 压缩的方法在磁带存储中尤为常见 。数据重複删除技术(De-duplication):当多个相似系统的数据要备份到同一台存储设备上时 , 需要重複备份数据 , 这会产生大量的冗余 。例如 , 有20个Windows工作站要备份到同一台存储设备上 , 备份数据就可以共享系统档案 。存储设备上只需要一份系统档案 , 就可以用来恢复多个工作站 。这项技术可以套用在档案级 , 也可以套用在未经处理的数据块级 , 通过避免冗余数据的重複複製 , 可以大大节省存储设备的存储空间 。重複数据删除技术可以发生在伺服器端 , 在数据备份到存储之前执行 , 这种方法可以在节省存储空间的同时节省备份数据的频宽需求 , 这种方式的重複数据删除叫做线上即时数据处理(inline);重複数据删除技术也可以发生在存储设备端 , 称之为后台重複数据删除技术 。数据複製技术(Duplication):在备份的过程中 , 数据有可能需要额外备份到第二组存储设备;通过将备份数据複製 , 可以调整备份镜像来最佳化恢复速度 , 而且可以将第二份备份数据存放在不同的备份地点 , 或不同的备份介质上 。数据加密技术(Encryption):对于大容量的可移动的备份存储介质 , 例如磁带 , 会面临丢失和被盗的风险 。通过对数据加密可以降低上述风险 , 但是也带来了另外的问题:首先 , 加密会占用大量的CPU进程 , 从而降低了备份速度;其次 , 数据被加密之后 , 就不能有效地压缩 , 例如某些磁带驱动器的数据压缩技术无法实施 。基于上述原因 , 以及冗余数据导致解密分析供给更加容易 , 很多加密技术都在实施之前进行压缩;最后 , 加密技术要成功起作用 , 必须配合整体的安全策略通盘考虑 。数据缓冲技术(Staging):利用数据缓冲技术 , 备份数据在複製到磁带之前 , 会先複製到缓冲磁碟 , 这个操作称之为D2D2T , 磁碟到磁碟到磁带 。数据缓冲技术(虚拟带库技术)在基于网路的备份系统中尤为重要 , 因为D2D2T技术可以缓解系统对于备份频宽的需求 。如果备份系统中需要执行其他的数据操作 , 缓冲磁碟还可以起到数据中心的作用 。基于.N ET 的档案备份程式设计在日常的计算机使用过程中 ,  一定会生成很多档案 , 例如大量的 Word 、Excel 、下载的网页档案、 图片档案等 ,  如果不对这些档案进行备份 ,  一旦磁碟损坏 , 会造成不可估量的损失 。而一般的备份方法通过Windows 作业系统提供的複製与贴上的方式进行备份 , 但这有许多不足之处:首先 , 每一次备份 , 不管档案有没有修改过 , 都需要重新进行一次複製与贴上 , 这样每次备份所需花费的时间一定不小于第一次的备份所花费的时间 , 即要花很长的时间 , 其次 , 由于大量的磁碟的读写操作会缩短了磁碟的使用寿命;再次 , 利用複製与贴上这种方法 , 很容易会遗漏源盘上 uWSMEWORK 2.0 DI 隐藏的子资料夹和档案;最后最可怕的是 , 如果目标盘上的档案经过修改后比源盘上对应的档案要新的话 , 由于遭到源盘上档案的覆盖 , 会造成数据的丢失 。本程式的设计 ,  利用了 .NETFramework 中提供的有关档案及资料夹管理的类 , 解决了以上这些问题 。设计原理对于一个源档案 , 首先判断目标盘上是否存在该档案 , 如果不存在 , 则直接複製过去 , 否则分别获取源档案与目标档案的修改日期时间的这个属性 ,  通过进行对比新旧 ,  决定是否进行备份 。如果源档案的修改日期时间比目标档案的修改日期时间新 , 则覆盖目标档案 , 否则不複製 。对于源盘上的资料夹 , 判定目标盘对应的路径下是否存在 , 如果不存在 ,  则在目标上新建该资料夹 。档案与资料夹处理根据源资料夹下档案的类型 , 对档案与资料夹进行分别处理 。档案处理( 1 ) 针对一个源资料夹 , 创建一个 DirectoryInfo 类的对象 。( 2 ) 通过 DirectoryInfo 的 GetFiles 方法 , 获取源资料夹下所有的档案对象序列 ,  保存到一个数组中 。( 3 ) 通过 FOR EACH 循环语句分别获取数组中的每个档案对象 。( 4 ) 针对一个档案对象 , 查找备份盘上对应的的路径下是否存在该档案 (通过 FILE 类的 EXIST 方法) , 如果不存在 , 则直接複製过去(通过 FILE 类的 COPY 方法);如果存在 , 则通过FILEINFO 类创建该档案对象 , 然后比较源档案与目标档案的修改日期时间 (通过档案对象 LASTWRITETIME 这个属性) , 如果源档案对象的修改日期时间比目标档案对象的修改日期时间要新 , 即源档案的 LASTWRTETIME 大于目标档案的 LASTWRITETIME  , 则直接複製过去 , 否则跳过 , 处理下一个档案对象 。资料夹处理( 1 ) 通过 DirectoryInfo 的 GetDirectories 方法 , 获取源资料夹下所有的子资料夹对象序列 ,  保存到下一个数组中 。( 2 ) 通过 FOR EACH 循环语句分别获取每个子资料夹对象 。( 3 ) 针对一个子档案对象 ,  查找备份盘上相同的父资料夹是否存在相同名称的子资料夹 (通过 Directory 的 EXIST 方法) ,  如果存在 , 则对该子资料夹的档案按前面的处理方式进行 ,  如果不存在 , 则首先在在目标盘对应的父资料夹下创建子资料夹(通过 Directory.CreateDirectory 的方法) , 再按档案的处理方式进行备份 。算法流程图档案备份的算法流程 , 如图 1 所示 。