br>[0057]因此,本发明的Oracle数据库中备份数据块的重复数据删除方法对导出的RMAN数据块进行分割,将相同数据和不相同数据分割开后分别进行识别;对于重复数据块只保留一个副本,从而实现了备份数据块的重删率,缩减磁盘上存储的数据。
[0058]下面通过具体实施例来阐述本发明的Oracle数据库中备份数据块的重复数据删除方法。其中,该实施例采用的操作系统为RedHat Enterprise 5,Oracle llgR2,需要备份100G Oracle数据文件以及操作产生的日志文件。
[0059]利用本发明的Oracle数据库中备份数据块的重复数据删除方法进行重复数据删除时,包括以下步骤:
[0060]I)通过RMAN脚本备份数据文件和日志文件,得到RMAN数据块。
[0061 ] 2)将RMAN数据块分离为head块和body块。
[0062]3)将head块进行拼接组合,生成拼接head块缓存信息,并将拼接head块的数据和缓存信息进行存储;对拆分后的每个body块进行计算生成指纹,生成body块缓存信息,并存储body的指纹及缓存信息。
[0063]4)当Oracle数据库新增10G数据时,通过RMAN脚本备份数据文件和日志文件,得到再次RMAN数据块。
[0064]5)将再次RMAN数据块分离为head块和body块。
[0065]6)对head块进行拼接组合,生成head块缓存信息进行存储;计算拆分后的每个body块的指纹,并与已存储的指纹进行比对;若比对成功,则获取已存储的指纹所对应的body块缓存信息;若比对不成功,则生成body块缓存信息,并存储body类数据块的指纹和缓存信息。
[0066]如图4所示,本发明的Oracle数据库中备份数据块的重复数据删除系统包括初始导出模块1、初始拆分模块2、初始备份模块3、再次导出模块4、再次拆分模块5和再次备份模块6 0
[0067]初始导出模块I用于导出初始Oracle数据文件和日志文件,生成初始备份数据块。
[0068]具体地,通过RMAN脚本导出Oracle数据文件和日志文件,生成RMAN数据块。RMAN能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件等等。
[0069]初始拆分模块2用于将初始备份数据块拆分为块头和数据体。
[0070]其中,拆分是指将数据块进行切片的过程。如图2所示,将每个RMAN数据块可以拆分为块头(head块)和数据体(body块)两部分。
[0071]具体地,将每个RMAN数据块可以拆分为块头(head块)和数据体(body块)两部分。
[0072]初始备份模块3用于将所有head块拼接起来得到拼接head块,生成拼接head块缓存信息,并存储拼接head块的数据和缓存信息;计算每个body块的指纹,生成body块缓存信息,并存储body块的指纹和缓存信息。
[0073]其中,拼接head块缓存信息包括拼接head块的大小、head块的个数、存储位置等。body块缓存信息包括body块的存储位置、大小等。优选地,body块的指纹是指标识body块的唯一 ID。
[0074]其中,对RMAN数据块进行拆分后,将拆分后获取的所有head块按照先后顺序依次进行拼接,得到拼接head块。后续将在拼接head块的基础上生成拼接head块缓存信息。
[0075]具体地,采用MD5算法计算body块的指纹。
[0076]再次导出模块4用于在Oracle数据库的数据文件和日志文件发生变化时,导出Oracle数据文件和日志文件,生成再次备份数据块。
[0077]再次拆分模块5用于将再次备份数据块拆分为head块和body块。
[0078]再次备份模块6与初始备份模块3相连,用于将所有head块拼接起来得到拼接head块,生成并存储拼接head块缓存信息;计算拆分后的每个body块的指纹,并与已存储的指纹进行比对;若比对成功,则获取并存储已存储的指纹所对应的body块缓存信息;若比对不成功,则生成body块缓存信息,并存储body数据块的指纹和缓存信息。
[0079]若比对成功,则说明为重复body块,只需获取并存储已存储的指纹所对应的body块缓存信息;若比对不成功,则说明为不重复body块,生成body块缓存信息,并存储body数据块的指纹和缓存信息。
[0080]优选地,初始导出模块和再次导出模块可以集成为一个功能模块,用于导出Oracle数据文件和日志文件。同样的,初始拆分模块和再次拆分模块也可以集成为一个功能模块,用于拆分备份数据为块头和数据体。
[0081]因此,本发明的Oracle数据库中备份数据块的重复数据删除系统对导出的RMAN数据块进行分割,将相同数据和不相同数据分割开后分别进行识别;对于重复数据块只保留一个副本,从而实现了备份数据块的重删率,缩减磁盘上存储的数据。
[0082]综上所述,本发明的Oracle数据库中备份数据块的重复数据删除方法及系统不依赖于备份脚本;对导出的RMAN数据块进行分割,将相同数据和不相同数据分割开后分别进行识别,使得切分的数据块只有一半的指纹数,减少了指纹存储占据的空间;对于重复数据块只保留一个副本,以提高了重删率,缩减磁盘上存储的数据;减少磁盘使用空间和数据传输时间,节省了更多的人力物力。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0083]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1.一种Oracle数据库中备份数据块的重复数据删除方法,其特征在于:包括以下步骤: 步骤S1、导出初始Oracle数据文件和日志文件,生成初始备份数据块; 步骤S2、将初始备份数据块拆分为块头和数据体; 步骤S3、将所有块头拼接起来得到拼接块头,生成拼接块头缓存信息,并存储拼接块头的数据和缓存信息;计算拆分后的每个数据体的指纹,生成数据体缓存信息,并存储数据体的指纹和缓存信息; 步骤S4、当Oracle数据库的数据文件和日志文件发生变化时,导出Oracle数据文件和日志文件,生成再次备份数据块; 步骤S5、将再次备份数据块拆分为块头和数据体; 步骤S6、将所有块头拼接起来得到拼接块头,生成并存储拼接块头缓存信息;计算拆分后的每个数据体的指纹,并与已存储的指纹进行比对;若比对成功,则获取并存储已存储的指纹所对应的数据体缓存信息;若比对不成功,则生成数据体缓存信息,并存储数据体数据块的指纹和缓存信息。2.根据权利要求1所述的Oracle数据库中备份数据块的重复数据删除方法,其特征在于: 通过RMAN脚本导出Orac Ie数据文件和日志文件。3.根据权利要求1所述的Oracle数据库中备份数据块的重复数据删除方法,其特征在于: 拼接块头时,将拆分后获取的所有块头按照先后顺序依次进行拼接,得到拼接块头。4.根据权利要求1所述的Oracle数据库中备份数据块的重复数据删除方法,其特征在于: 所述拼接块头缓存信息包括拼接块头的大小、块头的个数和存储位置等;所述数据体缓存信息包括数据体的存储位置和大小。5.根据权利要求1所述的Oracle数据库中备份数据块的重复数据删除方法,其特征在于: 采用MD5算法计算数据体的指纹。6.—种Oracle数据库中备份数据块的重复数据删除系统,其特征在于:包括初始导出模块、初始拆分模块、初始备份模块、再次导出模块、再次拆分模块和再次备份模块; 初始导出模块用于导出初始Oracle数据文件和日志文件,生成初始备份数据块; 初始拆分模块用于将初始备份数据块拆分为块头和数据体; 初始备份模块用于将所有块头拼接起来得到拼接块头,生成拼接块头缓存信息,并存储拼接块头的数据和缓存信息;计算拆分后的每个数据体的指纹,生成数据体缓存信息,并存储数据体的指纹和缓存信息; 再次导出模块用于在Oracle数据库的数据文件和日志文件发生变化时,导出Oracle数据文件和日志文件,生成再次备份数据块; 再次导出模块用于将再次备份数据块拆分为块头和数据体; 再次备份模块用于将所有块头拼接起来得到拼接块头,生成并存储拼接块头缓存信息;计算拆分后的每个数据体的指纹,并与已存储的指纹进行比对;若比对成功,则获取并存储已存储的指纹所对应的数据体缓存信息;若比对不成功,则生成数据体缓存信息,并存储数据体数据块的指纹和缓存信息。7.根据权利要求6所述的Oracle数据库中备份数据块的重复数据删除系统,其特征在于: 通过RMAN脚本导出Orac Ie数据文件和日志文件。8.根据权利要求6所述的Oracle数据库中备份数据块的重复数据删除系统,其特征在于: 拼接块头时,将拆分后获取的所有块头按照先后顺序依次进行拼接,得到拼接块头。9.根据权利要求6所述的Oracle数据库中备份数据块的重复数据删除系统,其特征在于: 所述拼接块头缓存信息包括拼接块头的大小、块头的个数和存储位置等;所述数据体缓存信息包括数据体的存储位置和大小。10.根据权利要求6所述的Oracle数据库中备份数据块的重复数据删除系统,其特征在于: 采用MD5算法计算数据体的指纹。
【专利摘要】本发明提供一种Oracle数据库中备份数据块的重复数据删除方法及系统,包括将初始备份数据块拆分为块头和数据体;生成拼接块头缓存信息,存储拼接块头的数据和缓存信息;生成数据体缓存信息,并存储数据体的指纹和缓存信息;当Oracle数据库的数据文件和日志文件发生变化时,生成再次备份数据块;将再次备份数据块拆分为块头和数据体;生成并存储拼接块头缓存信息;将每个数据体的指纹与已存储的指纹进行比对;若比对成功,则获取并存储所对应的数据体缓存信息;否则生成数据体缓存信息,并存储数据体数据块的指纹和缓存信息。本发明的Oracle数据库中备份数据块的重复数据删除方法及系统可将重复数据块只保留一个副本,从而缩减了磁盘上存储的数据。
【IPC分类】G06F17/30
【公开号】CN105608235
【申请号】CN201610177319
【发明人】董倩
【申请人】上海爱数信息技术股份有限公司
【公开日】2016年5月25日
【申请日】2016年3月25日