摘要:针对在数据备份服务器中存在大量重复数据的问题,提出了一种基于重复数据删除技术的oracle数据库备份系统。系统首先生成临时备份文件,然后把临时文件划分成不重叠的块,通过哈希算法计算每个块的指纹值。在数据灾备中心建立hash表记录已存储数据块的指纹值。通过对比指纹值,检测重复数据。为了提高数据安全性,采用了一定的安全机制来防止信息泄露以及数据丢失。实验证明,该系统在实现远程备份的同时,有效地减少了备份的数据。
关键词:数据备份;重复数据删除;Oracle数据库;安全机制
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)01-0005-03
Oracle数据库是美国甲骨文公司推出的一款市场占有率很高的关系数据库管理系统。随着信息技术的快速发展,数据对企业越来越重要,数据丢失以后对企业来讲,其损失是无法估量的,甚至是毁灭性的[1]。但由于备份数据的爆炸式增长,对数据备份服务器的存储空间需求越来越大,在大量的备份数据中有很大一部分是重复或者相似的数据。为了节省备份服务器的存储空间,节约备份数据传输成本,重复数据删除技术被运用到Oracle数据库备份系统中[2]。
目前,重复数据删除技术主要包括相似数据检测和编码技术,相同数据检测技术。本系统主要运用的是相同数据检测技术。相同数据检测根据检测粒度的不同分为相同文件和相同数据块。完全文件检测对文件内部的重复数据无能为力。相同数据块主要是通过固定分块,可变分块,滑动分块等技术检测重复数据。本系统首先将需要备份的数据放到备份代理处,然后使用滑动块检测技术对备份代理处的文件进行处理,处理掉重复的数据。再把处理后的数据通过Internet网传输到远程的备份服务器,存储在备份服务器的磁盘上,在备份服务器上建立分块指纹值的hash表并添加分块的指纹值[3]。
1 Oracle数据库备份系统架构
Oracle数据库备份系统的结构如图1所示,备份代理通过因特网与远程的备份服务器相连。备份代理首先把数据库中的数据导出生成临时文件,然后按照一定的算法将需要备份的临时文件划分为数据块并计算其指纹值。备份服务器包括管理服务器和存储服务器。管理服务器负责数据库的备份与恢复,存储服务器保存来自备份代理的文件,数据块的指纹值索引表。
2 系统设计与实现
2.1 Oracle数据导出
在Oracle数据库中利用Export可以将数据从数据库中提取出来,Oracle支持三种数据导出模式:表方式(table),用户方式(user),完全方式(full)。在备份代理中用Export导出Oracle数据库中的数据,生成二进制临时文件[4]。
2.2文件分块
目前,发现文件冗余数据的一般方法是划分数据块,计算并比较数据块的指纹值。文件分块主要有固定尺寸分块和变长分块两大类。固定尺寸分块是使用固定大小的分块来识别备份系统中的重复数据,固定分块的优点是算法简单,处理速度快,适合在交互的环境中,缺点是对插入和删除问题处理很低效,当数据改变的时,数据块的边界发生变化,重复数据检测变得非常困难,不能智能判断文件自身内容和文件之间的关系。可变分块是将文件划分成长度不同的分块,它划分文件是基于文件的内容,数据块长度可以变化。插入或者删除小部分字节对可变分块算法影响不大,可变分块算法在两个相似数据块之间可以检测出更多的冗余数据。
基于可变分块的重复数据检测方法主要有CDC算法,fingerdiff算法。CDC算法不好把握划分块的粒度大小,如果粒度较细,重复数据检测会很精确,但是开销大;相反,如果划分粒度过粗,重复数据检测效果不好[5]。为了改进CDC算法开销过大的缺点,研究者提出了fingerdiff算法。fingerdiff算法的核心思想是尽可能地合并没有变化的数据块,以减少存储空间[5]。fingerdiff很好的解决了CDC算法存储空间过大的问题,但和CDC算法一样存在另外的缺点,对于要检测重复数据的两个数据块中的微小变化,fingerdiff和CDC算法效果都不好。为了改进fingerdiff和CDC算法的这个缺陷,提出了滑动块检测技术。
基于本系统特点,本系统采用基于滑动块的重复数据删除技术,滑动块检测技术结合固定块大小检测和可变块大小检测技术的优点[6]。滑动块检测技术运用Rsync Checksum算法[7]和滑动窗口方法进行分块。该方法如图2所示,使用Rsync Checksum计算滑动窗口内数据块的求和校验值,如果校验值匹配,则用SHA-1算法对数据块进行更严格的hash计算,比较SHA-1 hash值和存储的hash值来检测重复数据。如果检测到重复数据,将重复数据块记录后,滑动窗口滑过这个重复数据块继续向前移动。另外,还要将滑动块之前的这个碎片记录并存储下来。如果Checksum校验值和已经存储的校验值不匹配,滑动窗口继续前移进行检测,如果滑动窗口移动的距离达到定长块长度时还没有检测到重复数据,将这个块的checksum校验和与SHA-1 hash值计算并存储供将来数据块重复检测。
滑动块重复数据删除技术很好的解决了数据中插入和删除的问题,并且能够检测到更多的重复数据[8]。如果一小部分内容插入需要备份的数据中,只有插入数据周围的块会受到影响,后面的块仍然能够通过这个算法检测重复数据。同理,删除一小部分数据时也只会影响周围的数据块,对其他数据块不会造成影响,仍然可以使用本方法进行重复数据检测。
2.3存储数据和数据块索引
如图3所示,备份服务器的数据处理模块接收到备份代理传输过来的数据以后,将数据块的指纹值与备份系统索引表中存储的指纹值比较,判断传过来的数据块是否已经存在于备份中心中。如果不是重复的数据块,就将数据块和数据块的指纹值写入备份服务器的存储服务器中。随着备份服务器中数据块的增多,索引表也越来越大,搜索索引表中的指纹值会变得很低效,为了解决这个问题,对索引表引入二级索引缓存[3],内存中存放第一级缓存,里面的指纹值是最近发送过来的数据块的指纹值。磁盘中存放第二级缓存,内存中换出的指纹值放在第二级缓存中。
在备份服务器上,当要删除一个文件时,组成该文件的所有数据块都会被删除。上文中提到不同文件可能会共享一些数据块,当删除一个文件中的数据块后,会造成其他文件所共享的数据块丢失。解决这个问题的一般有两种方法:第一是适当引入一定量的冗余数据保证备份数据的安全性[9],第二是在每个数据块中格外添加一个描述符Reference count,它记录数据块被共享的次数,每次删除数据块时都检查Reference count是否大于一,如果大于一,说明有其他文件在使用数据块,不能删除,否则可以删除数据块。这样便保证了备份文件的安全性。
2.4 Oracle数据库恢复
当生产服务器上面的Oracle数据库遭到破坏或者数据丢失时,用户需要恢复数据库,恢复数据库的一般步骤如下:(1)在远程备份服务器中的第一级缓存索引列表中查找需要恢复文件的数据块指纹值。(2)如果在第一级缓存中没有找到指纹值,继续在第二级缓存索引中查找指纹值(3)按照指纹值依次从备份中心的数据服务器中读出数据块。(4)重复(1)到(3),直到备份代理收到完整的恢复文件。由于备份时数据块是按照顺序存放的,恢复时每读一个数据块都会将其周围块读入缓存中。加快了恢复速度。
3 实验
实验环境为:备份代理和备份服务器的硬件配置是一样的:CPU是Intel(R) Core(TM)2 Duo CPU E7500 @2.93GHz 2.94GHz,内存为2G,硬盘大小为320G。备份代理的操作系统是Windows 2003 server,备份服务器安装的操作系统是CentOS。备份代理和备份服务器通过百兆交换机相连。
本实验的方法是:首先把Oracle数据库中的内容备份,然后将备份的内容经过重复数据删除处理后存储到备份服务器上。需要备份的原始数据大小为935M,1804M,2903M。本次实验采用两种方法进行数据备份,将备份数据压缩后存储数据和对需要备份的数据进行重复数据删除处理后存储数据。
由图4可以看出,第一种方法,采用普通压缩技术压缩备份文件,经过压缩备份数据以后,备份数据比原始数据要少,减少了数据存储空间。第二种方法采用重复数据删除技术处理备份数据,图4显示,当备份数据为935M时,通过重复数据删除技术处理的备份数据要略大于通过压缩方法处理的数据,这是因为刚开始备份重复数据很少,再加上重复数据删除技术需要存储数据块的索引表,需要额外的存储空间。在处理1804M备份数据时,重复删除技术占用的空间比压缩技术占用的空间小,2903M备份数据时,差距加大。
图4还表明,随着Oracle数据库备份的次数增加,备份代理和备份服务器中的重复数据会越来越多,重复数据删除技术相对于压缩技术的优势也越来越大。在Oracle数据库备份中应用重复数据删除技术能够更好的节约存储空间,节省网络带宽。
4 结束语
本文设计并实现了一种基于重复数据删除的Oracle数据库备份系统,该系统可以进行远程备份与恢复,本系统采用重复数据删除技术删除Oracle数据库系统中的重复数据,实验表明,重复删除技术删除了备份服务器中的重复数据块,备份次数越多,效果越好。提高了备份服务器中存储空间利用率,也降低了备份系统对网络带宽的要求。通过给数据块增加Reference count有效的保护了备份数据安全。本系统在保证备份数据安全的同时,减少了存储空间。
参考文献:
[1] 李涛.信息系统容灾抗毁原理与应用[M].北京:人民邮电出d0046bcab9e67c6becd2a7b9a34e2e5e8bb8f7713c6f83d8ab27a7330363fd6e版社,2007.
[2] Muthitacharoen A, Chen B,Mazieres D.A low-bandwidth network file system. In:Proc.of the 18th ACM Symp. on Operating System Principles (SOSP 2001).New York: ACM Press,2001, 174-187.
[3] Tianming Yang, Dan Feng,Jingning Liu,Yaping Wan,Zhongying Niu,Yuchang Ke.“3DNBS: A Data De-duplication Disk-Based Network Backup System”. NAS 2009: 287-294.
[4] 李锁雷.Oracle数据块备份与恢复研究[J].信息安全与技术,2011(9):99-100.
[5] Bobbarjung DR,Jagannathan S,Dubnicki C.Improving duplicate elimination in storage systems.ACM Trans.on Storage,2006,2(4):424- 448.
[6] 敖莉,舒继武,李明强.重复数据删除技术[J].软件学报,2010(05):918-920.
[7] Langford J. Multiround rsync.[2012-01-01].http://www.cs.cmu.edu/~jcl/research/mrsync/mrsync.ps
[8] BRODER A Z. Identifying and Filtering Near-duplicate Documents [C]//Proceedings of the 11th Annual Symposium on Combinatorial Pattern Matching(CPM’00),Jun 21-23, 2000, Montreal, Canada. Berlin, Germany: Springer-Verlag,2000:1-10.
[9] Han B, Keleher P. Implementation and performance evaluation of fuzzy file block matching. In: Proc. of the 2007 USENIX Annual Technical Conf. (USENIX 2007).Berkeley.USENIX Association, 2007:199-204.