首页> 中国专利> 一种应用系统物理数据库与内存数据库的数据同步方法

一种应用系统物理数据库与内存数据库的数据同步方法

摘要

本发明公开了一种应用系统物理数据库与内存数据库的数据同步方法,用于该应用系统的生命周期内,并包括以下步骤:应用系统运行所需的内存数据库表设置一用于实现数据新增的数据保存过程,以及一用于实现数据删除的数据删除过程;采用对内存数据库表的数据保存过程和数据删除过程为每个表实现一数据同步的原子同步过程;在所述原子同步过程基础上,实现数据同步的类表同步过程;在类表同步过程基础上,实现控制所有表数据同步的总控同步过程。本发明方法由于充分利用了需要进行内存数据库数据同步操作库表的特性,实现了在线的情况下任意需要物理数据库和内存数据库数据同步库表间的数据同步操作,大大增强了应用的可靠性。

著录项

  • 公开/公告号CN101526940A

    专利类型发明专利

  • 公开/公告日2009-09-09

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200810066308.0

  • 发明设计人 杨金彬;梁可心;汪宇;

    申请日2008-03-19

  • 分类号G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-17 22:36:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-08

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20110316 终止日期:20180319 申请日:20080319

    专利权的终止

  • 2011-03-16

    授权

    授权

  • 2010-01-13

    实质审查的生效

    实质审查的生效

  • 2009-09-09

    公开

    公开

说明书

技术领域

本发明涉及一种软件研发领域中关系数据库应用的方法,尤其涉及的是一种利用内存关系数据库提高数据检索性能并解决与物理关系数据库数据同步的方法。

背景技术

现有技术的关系数据库管理系统是行业应用软件领域中最核心组成部分之一,它主要负责对应用过程中产生的各种数据进行持久化,这些数据通过建立在数据库中的各种关系模型进行关联,并提供专门的标准化结构化过程化语言方法(SQL,Structured Query Language)来对数据进行增加、删除、修改和查询。

随着计算机应用软件技术的飞速发展,各行各业已经建立起了林林总总,形形色色,各种各样的应用系统,某些应用系统甚至已经连续运行数年。客户量和业务量的飞速发展引起信息的大爆炸,且引起这些应用系统的数据库中各模型之间的关系日益复杂化。

海量的数据和复杂的模型间关系导致数据的检索速度达到难以忍受的程度。即使数据库技术也是日新月异,各数据库厂商也对这一情况使尽了浑身解数,但还是无法完全解决这一现实问题。

各应用软件开发商试图通过另外的途径来解决这一问题,由此出现了内存数据库这一相对于物理数据库的简化关系数据库系统。同物理关系数据库一样,内存数据库中各数据间的关系也是以关系模型建立的,同样也支持结构化查询语言(SQL),但最大的区别在于其所有的模型和数据都存放在内存中,插入、删除以及修改都在内存中进行,这便大大加快了数据库的更新及检索速度(特别是检索速度)。

因此,基于这样的一种技术,很多应用软件项目便把检索较频繁且较复杂的数据存放在内存数据库中,然后通过结构化的查询语言在内存中进行操作,这样便大大的提高了检索的速度,改善了应用系统的运行效率。

内存数据库技术的使用的确大大改善了应用系统处理和运行的效率,但随着系统运行的深入,数据不断发生变化与更新,便出现了各种各样复杂的问题,其中最突出的问题之一便是内存数据库与物理数据库的数据同步问题。

下面从应用系统启动、运行、停止的整个运行生命周期过程中,数据在数据库中存在的整个生命周期的角度来分析可能存在的物理数据库和内存数据库间的数据同步问题:

(1)应用系统启动

启动时需把需要由内存数据库管理的数据从物理数据库同步到内存数据库中,由此在系统启动过程中或第一次使用数据时,通过软件代码流程控制,把物理数据库中的数据同步到内存数据库中。这时可通过异常捕获机制发现同步过程中是否出现异常。

出现异常的情况如下:

①代码问题

该异常可通过前期修复代码实现修复,不存在过程异常问题。

②物理数据库与内存数据库间数据库实体对象结构不一致

该异常可通过前期修复两种数据库间实体对象结构,使他们保持一致来解决问题,不存在使用过程异常问题。

③启动中途数据同步异常中断

该异常可能引起数据同步部分成功,需要提供数据重新同步机制实现数据同步。

(2)应用系统运行中

系统运行过程中,应用数据随着使用的深入不断发生变化,如数据的增、删、改,此时便出现了复杂的物理数据库与内存数据库在数据发生变化时的数据同步问题。情况枚举如下:

①数据新增

i只新增物理数据库,没新增内存数据库;

ii只新增内存数据库,没新增物理数据库;

②数据修改

i只修改物理数据库,没修改内存数据库;

ii只修改内存数据库,没修改物理数据库;

③数据删除

i只删除物理数据库,没删除内存数据库;

ii只删除内存数据库,没删除物理数据库;

以上三种数据同步异常存在如下几种情况:

①.代码问题

该异常可通过前期修复代码实现修复,不存在使用过程异常问题。

②.物理数据库与内存数据库间数据库实体对象结构不一致

该异常可通过前期修复两种数据库间实体对象结构一致解决问题,不存在过程异常问题。

③.不通过应用系统,直接从物理数据库插入数据

需要提供在线数据同步机制,不影响系统正常运行同步数据

④.不通过应用系统,直接从物理数据库修改数据

需要提供在线数据同步机制,不影响系统正常运行同步数据。

⑤.不通过应用系统,直接从物理数据库删除数据

需要提供在线数据同步机制,不影响系统正常运行同步数据。

(3)停止应用系统

应用系统停止操作不存在数据同步问题,只需在应用停止过程中由虚拟机或操作系统回收内存,同时自动清除内存数据库中的模型和数据即可。

综上,在现有技术应用系统的整个生命周期过程中,从系统启动、运行到停止,充满着复杂的数据变化过程,从而会引起内存数据库与物理数据库的数据不一致,导致应用系统运行异常,造成系统运行不稳定。

因此,现有技术还存在缺陷,而有待于改进和发展。

发明内容

本发明的目的是提供一种应用系统物理数据库与内存数据库的数据同步方法,为了克服在行业应用软件设计中应用到物理关系数据库和内存关系数据库技术时,两者之间可能存在的数据不同步问题,设计一种完善的数据同步方法来避免由于数据不同步引起的应用问题,保证系统的正常运行。

本发明的技术方案包括:

一种应用系统物理数据库与内存数据库的数据同步方法,用于该应用系统的生命周期内,并包括以下步骤:

A、应用系统运行所需的内存数据库表设置一用于实现数据新增的数据保存过程,以及一用于实现数据删除的数据删除过程;

B、采用对内存数据库表的数据保存过程和数据删除过程为每个表实现一数据同步的原子同步过程;

C、在所述原子同步过程基础上,实现数据同步的类表同步过程;

D、在类表同步过程基础上,实现控制所有表数据同步的总控同步过程。

所述的方法,其中,所述步骤B包括:

B2、应用系统中为每个表设置一是否已同步的同步标识,并对该同步标识进行判断是否已同步;

B3、如果所述标识不是已同步,则删除内存数据库中该表的所有记录;

B4、获取所述物理数据库中该表的所有记录,并保存到所述内存数据库的对应表中;

B5、并设置改变该表的同步标识为已同步。

所述的方法,其中,在所述步骤B2之前还执行:

B1、为该表的数据同步操作流程加锁;以及,在所述步骤B5之后执行:

B6、对该数据同步操作流程解锁。

所述的方法,其中,还包括步骤:

E、根据应用实际情况设计相应的界面实现一键数据同步,分别调用所述原子同步过程、类表同步过程以及总控同步过程。

所述的方法,其中,所述应用系统为电信OSS领域综合网络激活系统。

所述的方法,其中,所述应用系统的类表包括:静态数据表,规则表,以及命令表。

所述的方法,其中,所述应用系统的表包括:工单类型表、网元类型表、业务类型表、业务规则表、转换规则表、实例化规则表及命令模板表。

本发明所提供的一种应用系统物理数据库与内存数据库的数据同步方法,由于充分利用了需要进行内存数据库数据同步操作库表的特性,实现了在线的情况下任意需要物理数据库和内存数据库数据同步库表间的数据同步操作,大大增强了应用的可靠性。

附图说明

图1是本发明应用系统物理数据库与内存数据库的数据同步方法的原子同步流程图;

图2是本发明应用系统物理数据库与内存数据库的数据同步方法的类表同步过程图;

图3是本发明应用系统物理数据库与内存数据库的数据同步方法的总控同步过程图;

图4是本发明应用系统物理数据库与内存数据库的数据同步方法的界面设计方法图。

具体实施方式

以下结合附图,将对本发明的各较佳实施例进行更为详细的说明。

本发明应用系统物理数据库与内存数据库的数据同步方法通过对应用到物理关系数据库和内存关系数据库的应用系统的研究总结,发现需要把其从物理数据库同步到内存数据库中以提高应用性能的库表一般具有以下几个特性:

1、在关键业务中频繁使用;

2、查询方式较复杂;

3、大数据量库表因数据占用内存过多而不适合常驻内存,因此数据量一般不庞大;

4、经常与大数据量数据库表关联。

符合这些特点的数据库表一般具有典型的可归类特征属性,更贴近应用系统的一种说法是,这些库表一般主要存储应用需要的规则、命令或静态数据。规则表中存储的应用规则需要在应用逻辑过程中频繁使用,来判断应用逻辑可能的走向流程;静态数据表中存储的静态数据一般表明了应用系统经常使用的参数编码、名称或其它属性,这些静态数据一般在大数据量的查询中经常和大数据量表关联以呈现与数据相关的名称或属性。在一个良好设计的应用系统中这些库表的结构一般都比较固定,只是使用过程中会出现数据的变化,如:增、删、改等。

这样,本发明方法可为具有这些特征的每张表之增删改等数据变化操作撰写一个物理数据库数据与内存数据库数据同步过程,在此简称为原子同步过程,然后可以根据这些表的可归类属性组合(或任意组合)原子同步过程来完成某一类表的数据同步,在此简称为类表同步过程,接着可利用类表同步过程的组合来控制需要被同步的所有表的数据同步,在此简称该过程为总控同步过程。

本发明方法在应用系统启动、运行过程中,出现非代码异常或非物理数据库与内存数据库间对象结构异常引起的两种数据库数据不一致时,可通过调用这些过程来实现需要同步的库表进行数据同步操作。

下面以电信OSS领域中综合网络激活系统应用为例,说明本发明方法技术方案的实现过程。

综合网络激活为电信运营支撑领域综合网络开通中的激活部分,其主要负责根据施工工单对电信业务进行开通或变更。在应用过程中需要应用到一些静态数据或业务规则,举例如下:

①.静态数据表:

工单类型表,

网元类型表,

业务类型表等;

②.规则表:

业务规则表,

转换规则表,

实例化规则表等。

③.命令表

命令模板表。

本发明方法对这三类表的物理数据库与内存数据库数据同步实现步骤如下:

步骤一、为工单类型表、网元类型表、业务类型表、业务规则表、转换规则表、实例化规则表、命令模板表等分别设计一个数据保存方法,该方法可实现数据的新增。

步骤二、为工单类型表、网元类型表、业务类型表、业务规则表、转换规则表、实例化规则表、命令模板表等分别设计一个数据删除方法,该方法可实现数据的删除。

步骤三、在步骤一,步骤二的基础上分别为各表实现一个数据同步方法,该方法为原子同步过程,原子同步过程的实现流程如图1所示。

步骤四、在步骤三实现的原子同步过程基础上,分别实现静态数据、规则和命令三类表的类表同步过程,类表同步过程的实现过程如图2所示。

步骤五、在步骤四实现的类表同步过程基础上,实现控制所有静态数据表、规则表、命令表数据的总控同步过程,该总控同步过程的实现过程如图3所示。

步骤六、设计数据同步界面,可根据应用实际情况设计相应的界面来实现一键数据同步,这些同步界面可通过调用步骤三、步骤四、步骤五来实现各数据同步过程,其界面的设计方法如图4所示。

如图1所示为本发明的原子同步过程的流程图,其中具体包括:

步骤101、为该操作流程加锁,以保证该流程的排他性,以防止别的进程或线程执行同样的操作造成数据的混乱;

步骤102、应用系统中为每张表设置一个是否已同步的标识,并对该标识进行判断是否已同步;如果该表的判断结果为已同步,则转到步骤107解锁,然后结束;

步骤103、删除内存数据库中该表的所有记录;

步骤104、获取物理数据库中该表的所有记录,并保存到列表中;

步骤105、将所述步骤104获取到的改变记录列表循环保存到内存数据库的该表中;

步骤106、设置改变的同步标识为已同步;

步骤107、解锁;

步骤108、结束。

如图2所示为本发明方法的类表同步过程,该图以技术方案中的综合网络激活为示例进行说明,其中包括具体步骤:

步骤201、同步业务规则表到内存数据库;

步骤2011、设置业务规则表的同步标识为未同步;

步骤2012、调用业务规则表的原子同步过程同步该表数据,同步后该表对应的标识置为已同步。

步骤202、同步转换规则表到内存数据库,具体步骤参照步骤2011和2012,完成该同步转换规则表的数据同步过程。

步骤203、同步实例化规则表到内存数据库,具体步骤参照步骤2011和2012,完成该同步实例化规则表的数据同步过程

依次进行后续各表的数据同步过程,其过程包括步骤202、步骤203的内部同步流程都与步骤201相类似;并且,在实际应用中,步骤201、202、203以及其他各表的数据同步过程之间都没有顺序关系,可任意调换。

如图3所示为本发明方法的总控同步过程图,其中包括以下具体步骤:

步骤301、调用规则的类表同步过程;

步骤302、调用静态数据的类表同步过程;

步骤303、调用命令表的类表同步过程;

如有其他类表,依次执行类表同步的总控过程。在实际应用中,所述步骤301、302、303以及其他可能的类表同步过程之间都没有顺序关系,可任意调换。

如图4所示为本发明方法的界面设计方法示意图,在设计界面时,需要各个层次的界面,包括:设计单表同步界面,可调用原子同步过程;设计某一类表的同步界面,可调用类表同步过程;设计所有表的同步界面,可调用总控同步过程。

本发明以单表数据同步作为原子操作,进而可以任意组合成多表的数据同步操作和所有表的数据同步总控操作,并可设计相应数据同步界面按钮,通过一键完成需要同步数据库表的数据同步。

本发明方法充分利用了需要进行内存数据库数据同步操作库表的特性,把数据的同步操作分解为对每张表的原子同步操作,再由各表的原子同步操作可任意组合成一类表或所有表的数据同步操作,并在同步过程中加入锁机制以保证数据同步的排他性,增强了同步过程的安全性。

并根据软件项目实际情况,可把原子同步操作组合成某一类表或所有表的同步操作,应用时可调用相应的原子同步过程或某一类库表的同步方法或所有库表的总控方法,便可实现在线的情况下,任意需要物理数据库和内存数据库数据同步库表间的数据同步操作,大大增强了应用的可靠性,并可利用该方法实现软件升级过程中数据升级的不离线物理数据库数据与内存数据库数据同步操作。

应当指出的是,上述对本发明较佳实施例的描述较为具体,但不能因此而认为是对本发明专利保护范围的限制,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明所附权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号