一种提升Oracle备份性能的装置及方法

文档序号:9667221阅读:654来源:国知局
一种提升Oracle备份性能的装置及方法
【技术领域】
[0001]本发明涉及结构化数据保护领域,尤其是涉及一种提升Oracle备份性能的装置及方法。
【背景技术】
[0002]根据最具权威的IT研究与顾问咨询公司Gartner公司公布的2012年全球关系型数据库市场调查报告,以软件总收入计算,Oracle以48.3%继续占据着第一的位置,且收入份额大于四个最接近的竞争对手的总和。由此可看出作为数据库之王的Oracle在全球的用户是最多的。当前就我国很多行业部署的数据库也是Oracle,随着信息技术在我国的高速发展且使用时间越来越长,用户的Oracle数据库数据量越来越大,像公安厅的户口系统、铁道部门的订票系统等一个库通常达到几十TB的数据量。
[0003]传统的Oracle备份或磁带备份是需要在备份时扫描所有数据的,即使数据没有发生变化,这样在增量备份时就造成扫描数据块的时间成为增量备份中最耗时的操作。在增加了整个系统开销的同时致使备份效率降低,备份所消耗的时间非常长,特别是当用户Oracle数据库存在大量的静态数据的时候。当数据呈指数增长的时候,很显然备份时间的增长指数和数据量的增长指数是一致的,那么就无法实现高可靠性的数据保护,当数据达到TB级别时,传统的备份时间将超越24小时,意思是如果数据出现问题,我们即无法保证在此之前24小时数据的完整性,也无法保证数据在24小时内完整的恢复出来。
[0004]Oracle 10g推出特性Block Change Tracking(以下简称BCT)功能,该功能用于记录数据文件(data file)里每个数据块(block)的更新信息,这些tracking信息保存在跟踪文件(tracking file)里。当启动BCT后,RMAN使用跟踪文件里的信息,只读取改变的数据块信息,而不用再对整个数据文件进行扫描,从而提高了 RMAN备份的性能。
[0005]但现有的BCT功能存在以下不足:
[0006]1、位图(bitmap)限制在备份期间,BCT会维护已经标记为change的block的bitmap信息,Oracle会自动管理tracking file的大小,只保留最近8次block change的信息。超过8次,那么最前面的block bitmap信息会被当前更改覆盖。第一个0级的增量备份扫描整个data file,随后的增量备份使用tracking file的信息,只扫描自上次备份以来被标记为change的block。如果在0级备份之后又进行了 7次不同的增量备份或者累积增量备份,那么这时tracking file就包含了 8个bitmap信息。如果再进行1级的增量备份,那么此时的增量就不是最优的,还会扫描整个data file,因为之前0级的bitmap信息被当前的bitmap信息覆盖掉了,这样就没有了参考的依据。所以RMAN的备份策略要考虑到这个8次bitmap的影响。
[0007]2、tracking file位置大小限制。路径自己指定,但Oracle不建议使用rawdevice来存放tracking file。如果是RAC环境,tracking file必须放在共享设备上,使所有的节点都能共享此文件。RMAN不支持对tracking file的备份与恢复,当数据检测到tracking file无效时,就会reset tracking file,如果我们还原了数据库,那么数据库也会 reset block change tracking,并重新进行 tracking。
[0008]3、tracking file的大小和数据库的大小及enabled threads of redo的数量有关系,tracking file的大小会根据数据库大小的变化而变化,和本身的更新频率没有关系。单实例下此文件的大小大约为数据库大小的1/30000,如果是RAC环境,则需再乘以threads ο按此方法计算,那么数据库接近300G,那么tracking file不能小于10M。理论上启用BCT后,不需要其他的维护操作,但是我们要保证存放此文件的磁盘有足够的空间供tracking file进行自动扩展。
[0009]4、由于oracle备份过程中存在各种意外情况,有些情况就会使控制端和客户端存在任务执行结果不一致的状态。例如网络中断,控制台会将任务标记为失败,但oracle会继续发送数据到存储柜,并正常结束备份,就造成oracle备份成功但存储上并没有此次备份的数据。进行差异增量备份时是基于上次的备份信息进行备份的,那么恢复也就会恢复上次的备份数据,就导致无法恢复,为了解决这一问题就会产生控制台、存储和客户端备份信息不一致的问题。

【发明内容】

[0010]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种有效提高备份效率、备份过程可靠的提升Oracle备份性能的装置及方法。
[0011]本发明的目的可以通过以下技术方案来实现:
[0012]一种提升Oracle备份性能的装置,包括:
[0013]BCT检测设置模块,用于检测当前数据库的BCT状态,并根据检测结果进行相应操作;
[0014]智能备份类型转换模块,用于在BCT开启状态下检测备份任务的标记值,并根据检测结果转换备份类型。
[0015]所述BCT检测设置模块包括:
[0016]BCT检测单元,用于检测当前数据库的BCT状态,检测内容包括:是否设置参数db_create_file_dest 及是否开启 BCT ;
[0017]BCT设置单元,用于根据检测结果进行相应操作:
[0018]若未设置参数db_create_f ile_dest,则设置参数 db_create_f ile_dest,若未开启BCT,则开启BCT并创建相应的跟踪文件。
[0019]所述智能备份类型转换模块包括:
[0020]备份类型获取单元,用于获取当前的备份类型;
[0021]标记检测单元,用于在当前的备份类型不是完全备份时,检测数据库和存储端的时间戳标记并进行匹配判断,根据匹配结果输出相应的转换指令;
[0022]备份类型转换单元,用于根据所述转换指令进行备份类型转换,并在数据库和存储端生成与备份类型对应的时间戳标记。
[0023]所述标记检测单元进行匹配判断的过程具体为:
[0024]获取存储端上次备份成功的时间戳标记,将该时间戳标记与数据库中所有备份集的时间戳标记进行匹配,若与数据库中的最后一个标记点匹配成功,则直接备份,否则,追溯至数据库中匹配成功的标记点或者倒数第一个完全备份的标记点,记录先追溯到的标记点。
[0025]所述备份类型转换单元进行备份类型转换具体为:
[0026]若先追溯到的标记点为匹配成功的标记点,则将本次备份转换为累积增量备份,若先追溯到的标记点为完全备份的标记点,则将本次备份转换为完全备份。
[0027]一种提升Oracle备份性能的方法,该方法包括以下步骤:
[0028]1)检测当前数据库的BCT状态,并根据检测结果进行相应操作;
[0029]2)在BCT开启时,获取备份任务,判断该备份任务是否为完全备份,若是,则直接备份,若否,则执行步骤3);
[0030]3)获取存储端上次备份成功的时间戳标记,将该时间戳标记与数据库中所有备份集的时间戳标记进行匹配,若与数据库中的最后一个标记点匹配成功,则直接备份,否则,追溯至数据库中匹配成功的标记点或者倒数第一个完全备份的标记点,记录先追溯到的标记点;
[0031]4)若先追溯到的标记点为匹配成功的标记点,则将本次备份转换为累积增量备份,若先追溯到的标记点为完全备份的标记点,则将本次备份转换为完全备份;
[0032]5)在数据库和存储端生成与备份类型对应的时间戳标记。
[0033]所述步骤1)中,当前数据库BCT状态包括参数db_create_f ile_dest的设置状态和BCT的开启状态。
[0034]与现有技术相比,本发明具有以下有益效果:
[0035]1)本发明基于Block Change Tracking功能进行备份,相对于原始的全库扫描,不仅在缩短备份时间上有了显著的成效,更在保证数据的可恢复上有了更好的保证。在当前的数据不断膨胀的当下大大提升了备份效率和数据的安全性,使产品更具有优势和竞争力。
[0036]2)本发明在每次备份成功后记录相应的时间戳标记,并在每次备份时进行标记的匹配判断,根据判断结果进行备份类型的转换,解决了 Block Change Tracking功能中位图8次限制问题和存储和客户端备份信息不一致的问题,保证了备份过程的可靠性。
[0037]3)本发明实现了传统备份的功能的基础上,大大缩短了数据的备份时间,相应的它缩短了数据的保护周期,使在大数据下一天多备成为可能。如果出现灾难性事故,那么丢失的数据将更少。
【附图说明】
[0038]图1为本发明方法的流程示意图;
[0039]图2为本发明的一个实例示意图。
【具体实施方式】
[0040]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0041 ] 本实施例提供一种提升Oracle备份性能的装置,包括BCT检测设置模块和智能备份类型转换模块,其中,BCT检测设置模块用于检测当前数据库的BCT状态,并根据检测结果进行相应操作;智能备份类型转换模块用于在BCT开启状态下检测备份任务的标记值,并根据检测结果转换备份类型。
[0042]智能备份类型转换模块包括备份类型获取单元、标记检测单元和备份类型转换单元,其中,备份类型获取单元用于获取当前的备份类型;标记检测单元用于在当前的备份类型不是完全备份时,检测数据库和存储端的时间戳标记并进行匹配判断,根据匹配结果输出相应的转换指令;备份类型转换单元用于根据所述转换指令进行备份类型转换,并在数据库和存储端生成与备份类型对应的时间戳标记。
[0043]如图2所示,上述提升O
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1