本发明专利技术提供了一种基于oracle数据库系统的range分区表的维护方法和系统,其中维护方法包括至少一次的维护过程,维护过程包括:获取一个需要维护的range分区表及其对应的元数据;根据需要维护的range分区表的元数据和当前日期,获得当前日期所对应分区的上个周期的分区名称及下个周期的分区名称、表空间值、分区键划分值;若上个周期的分区存在,删除上个周期的分区;若下个周期的分区不存在,增加下个周期的分区;根据分区的删除和/或增加重新建立range分区表索引;更新元数据,并将更新的元数据进行存储;将增加的下个周期分区的统计信息存储到分区表统计信息中;通过本发明专利技术的方法和系统,可实现oracle数据库的range分区表由自动维护来代替oracleDBA的手动维护。
【技术实现步骤摘要】
本专利技术涉及分区表的维护方法和系统,特别地,涉及一种基于oracle数据库系统的range分区表的维护方法和系统。
技术介绍
分区(partitioning)是oracle数据库的一个组件,数据分区技术最早是在 Oracle 8. O中引入的,分区是将一个表或索引物理地分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲只有一个表或一个索引,但在物理上这个表或索引可能由数十个物理分区组成,每个分区都是一个独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。目前,oracle关系数据库管理系统(RDBMS)已发展到IlG R2,分区的方式有范围分区(range分区)、列表分区(list分区)、哈希分区(hash分区)以及上述三种分区组合的复合分区。其中,range分区是oracle最早推出的分区方式,在决策支持型的海量数据 oracle数据库系统(如数据挖掘、数据仓库等)中,大量使用着range分区技术。range分区的最显著特点就是分区表的分区键是按照时间顺序或者数值顺序作为分区的标准,数据按日期时间轴或者数值顺序递增。这种类型的数据表在数据库中占用量巨大,对于oracle 数据库管理员(DBA)来说,维护Range分区表的工作量是非常大的。当range分区技术应用于海量数据的相关领域时,由于分区表的数量众多(少则几十来张,多则上百张),维护这些range分区表的工作量是非常大的,每个技术细节的的失误都有可能导致整个oracle数据库系统的性能下降,甚至导致某些业务严重积压而无法正常处理。其中,Range分区表的维护内容包括单个range分区表中分区数量的维护,比如分区的新增和删除;单个range分区表中过期数据的清理,比如按照不同的存储策略来清理分区,其中存储策略可根据分区表的业务特性和数据需求来设定,比如分区表按天来分区的,可将其存储策略设定为保留20天内的数据,比如分区表按月来分区的,可将其存储策略设定为保留6个月以内的数据;单个range分区表中实效索引的重建;单个range分区表统计信息的更新,其中统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息,比如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小,都属于统计信息。此外在oracle IlG R2还推出了 Interval分区,即range分区根据分区键值自动添加新的分区,但Interval分区技术只能做到按时间或范围自动新增range分区表,不能做到分区表内的数据自动删除及索引自动维护、统计信息的实时更新等,这些都还需要 oracle DBA进行手动维护。总之,需要本领域技术人员迫切解决的一个技术问题就是如何实现由自动维护 oracle数据库中的range分区表来代替oracle DBA手动维护oracle数据库中的range分区表,从而达到range分区表的自动运维。
技术实现思路
为了解决上述问题,本专利技术提供了基于oracle数据库系统的range分区表的维护方法和系统,可实现由自动维护oracle数据库中的range分区表来代替oracle DBA手动维护oracle数据库中的range分区表,从而有效解决现有技术中DBA复杂、枯燥的手动维护且易因误操作给oracle数据库带来性能隐患的问题。本专利技术一方面提供了一种基于oracle数据库系统的range分区表的维护方法,其包括至少一次的维护过程,所述维护过程包括 获取ー个需要维护的range分区表及其对应的元数据; 根据所述需要维护的range分区表的元数据和当前日期,获得所述当前日期所对应分区的上个周期的分区名称及下个周期的分区名称、表空间值、分区键划分值; 若上个周期的分区存在,则删除上个周期的分区; 若下个周期的分区不存在,则增加下个周期的分区; 根据分区的删除和/或增加重新建立range分区表索引; 更新元数据,并将更新后的元数据进行存储; 将增加的下个周期分区的统计信息存储到所述range分区表的统计信息中。其中,获取ー个需要维护的range分区表及其对应的元数据的步骤,具体为通过当前日期和表存储策略来获取需要维护的range分区表及其对应的元数据。优选的,在进行维护过程之前,还包括创建用于存储所有range分区表的元数据的元数据表。其中,所述兀数据包括表基本信息、表分区信息、表存储策略和表数据报告日期。具体的,所述表基本信息包括表名、表属主;所述表分区信息包括分区键、分区序号和当前数据分区值;所述表存储策略包括当前表空间大小、存点类型、保留数值;所述表数据报告日期包括数据报告日志的日期、数据更新日期。优选的,所述维护过程可通过调度工具触发或通过任务定时器定时触发。本专利技术同时还提出了一种基于oracle数据库系统的range分区表的维护系统,包括 分区表获取单元,用于获取ー个需要维护的range分区表及其对应的元数据; 分区信息获取单元,用于根据所述需要维护的range分区表的元数据和当前日期,获得所述当前日期所对应分区的上个周期的分区名称及下个周期的分区名称、表空间值、分区键划分值; 分区删除单元,用于当上个周期的分区存在时,删除上个周期的分区; 分区增加单元,用于当下个周期的分区不存在时,増加下个周期的分区; 索引重建単元,用于根据分区的删除和/或增加重新建立range分区表索引; 元数据更新単元,用于更新元数据,并将更新后的元数据进行存储; 统计信息更新単元,用于将增加的下个周期分区的统计信息存储到所述range分区表的统计信息中。优选的,所述系统还包括元数据表创建単元,用于创建存储所有分区表的元数据的元数据表。优选的,所述兀数据包括表基本信息、表分区信息、表存储策略和表数据报告日期。具体的,所述表基本信息包括表名、表属主;所述表分区信息包括分区键、分区序号和当前数据分区值;所述表存储策略包括当前表空间大小、存点类型、保留数值;所述表数据报告日期包括数据报告日志的日期、数据更新日期。其中,分区表获取单元,具体为通过当前日期和表存储策略来获取需要维护的 range分区表及其对应的元数据。优选的,所述系统还包括调度工具或任务定时器,用于触发所述维护系统。通过本专利技术提供的基于oracle数据库系统的range分区表的维护方法和系统,可实现由自动维护oracle数据库中的range分区表来代替oracle DBA手动维护oracle数据库中的range分区表,从而有效解决现有技术中oracle DBA复杂、枯燥的手动维护且易因误操作给oracle数据库带来性能隐患的问题。附图说明图I是本专利技术基于oracle数据库系统的range分区表的维护方法实施例的流程图;图2是本专利技术基于oracle数据库系统的range分区表的维护系统实施例的示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。参照图1,示出了本专利技术一种基于oracle数据库系统的range分区表的维护方法实施例的流程图,其包括至少一次的维护过程,所述维护过程为一个oracle的存储过程, 可通过调度工具触发或通过任务本文档来自技高网...
【技术保护点】
一种基于oracle数据库系统的range分区表的维护方法,其特征在于,包括至少一次的维护过程,所述维护过程包括:获取一个需要维护的range分区表及其对应的元数据;根据所述需要维护的range分区表的元数据和当前日期,获得所述当前日期所对应分区的上个周期的分区名称及下个周期的分区名称、表空间值、分区键划分值;若上个周期的分区存在,则删除上个周期的分区;若下个周期的分区不存在,则增加下个周期的分区;根据分区的删除和/或增加重新建立range分区表索引;更新元数据,并将更新后的元数据进行存储;将增加的下个周期分区的统计信息存储到所述range分区表的统计信息中。
【技术特征摘要】
【专利技术属性】
技术研发人员:余有能,庄进发,吴鸿伟,
申请(专利权)人:厦门市美亚柏科信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。