著录项信息
专利名称 | 无线通信基站系统前后台数据库表数据增量同步方法 |
申请号 | CN200610090238.3 | 申请日期 | 2006-07-07 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2008-01-09 | 公开/公告号 | CN101102577 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04W4/00 | IPC分类号 | H;0;4;W;4;/;0;0查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦6层法律部
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 李刚;杨广德 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种无线通信基站系统前后台数据库表数据增量同步的方法。为解决现有技术中前后台间配置表数据同步的效率低问题而发明。本发明包括以下步骤:(1)后台统计出增量事务,并组织出增量同步事务集;其中,所述的增量事务包括操作标志和相对应的记录数据内容;(2)后台将增量事务集数据传输给前台内存数据库同步模块;(3)前台接收完数据后,对于每条增量事务所对应的纪录数据内容,调用对应表中的操作方法,对每个增量事务进行增量同步。这样,能够使移动通讯基站系统前后台配置表数据的快速分发与同步,有效提高移动通讯基站系统前后台间配置表数据同步的效率。
1.一种无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,包括以下步骤:
(1)后台组织出增量同步事务集;所述组织出增量同步事务集包括:(11)后台将标识增量同步表数量的表数量标识添加到增量同步事务集的第一位;(12)在表数量标识后依次添加增量事务表,并组织表中内容的关联关系;
其中,增量同步事务包括操作标志和相对应的记录数据内容;
(2)后台将增量同步事务集数据全部传输给前台内存数据库同步模块;
(3)前台接收完数据后,对于每条增量事务所对应的记录数据内容,调用对应表中的操作方法,对每个增量事务进行增量同步;所述的步骤(3)具体为:
(31)前台解析增量同步事务集的表名,并根据表名找到对应的数据库关系表;
(32)对每一个增量事务,根据增量事务表的记录长度属性获取当前记录数据内容的数据长度,解析出当前增量事务对应的记录数据内容;
(33)对每一个增量事务,根据增量事务操作标志,确定需要调用的对应表的记录操作方法;并根据解析获得的每条对应的记录数据内容,调用对应表的操作方法,完成每个数据库增量事务的增量同步任务。
2.按照权利要求1所述的无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,所述的步骤(12)中组织表中内容关联关系的方法为:
(121)在增量事务表的首位添加增量同步表的表名;
(122)在表名后添加标识增量同步记录数据数量的记录数量标识;
(123)在记录数量标识后添加增量事务操作标志;
(124)在操作标志后添加记录数据的内容。
3.按照权利要求1所述的无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,所述的步骤(1)和步骤(2)之间还包括:
(A)前台内存数据库同步模块将自己的数据库版本号发送给后台,后台判断比较数据库版本是否一致,如果判断结果为不一致,步骤结束;如果判断结果为一致,则进入步骤(2)。
4.按照权利要求1所述的无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,所述的步骤(2)具体为:
(21)后台发送给前台增量同步事务集数据传输开始请求,前台内存数据库同步模块做好接收增量同步事务集数据准备,返回给后台准备就绪响应;
(22)后台将增量同步事务集数据按照数据包的形式传输给前台内存数据库同步模块;
(23)前台内存数据库同步模块将接收的数据包按顺序存入接收缓冲区,并返回确认响应;
(24)后台接收到确认响应后,查看增量同步事务集是否传输完毕,如果没有传输完毕,则返回步骤(22);如果传输完毕,则后台向前台发送数据传输完毕消息,进入步骤(25);
(25)前台接收到传输完毕消息后,返回确认消息。
5.按照权利要求1所述的无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,所述的步骤(31)前还包括:
(a)前台解析出本次需要进行增量同步的增量事务表的数量,并根据增量事务数量,确定需要处理的增量事务的算法次数;
(b)前台开始对每一个表进行遍历操作,判断是否所有表都遍历完毕,如果判断结果为是,则步骤结束;如果判断结果为否,则进入步骤(31);
所述的步骤(31)和步骤(32)之间还包括:
(c)前台开始对当前表中的增量事务进行遍历操作,判断是否所有的增量事务操作都执行完毕;如果判断结果为是,则返回步骤(b);否则,进入步骤(32);
所述的步骤(33)具体为:
(331)对每一个增量事务,前台判断事务操作标志是否是插入标志,如果判断结果为是,则进入步骤(332);否则,进入步骤(333);
(332)前台调用记录对应关系表的插入方法,将记录数据内容插入到关系表中;并判断本次执行插入操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337)。
(333)判断事务操作标志是否是修改标志,如果是修改标志,则转到步骤(334);否则,转到步骤(335);
(334)前台调用记录对应关系表的修改方法,将记录数据内容更新到当前关系表中,并判断本次执行修改更新操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337);
(335)判断事务操作标志是否是删除标志,如果是删除标志,则转到步骤(336);否则,步骤结束;
(336)前台调用记录对应关系表的删除方法,将关系表中指定的记录数据删除,并判断本次执行删除记录操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337);
(337)前台记录下执行失败的事务,终止增量同步事务集执行更新操作流程。
技术领域\n本发明涉及表数据增量同步方法,特别涉及无线通信基站系统前后台数据库表增量同步方法。 \n背景技术\n在无线通信基站系统中,可分为前台基站系统(BSS)和后台操作维护系统(OMS)。基站系统业务配置数据驻留在前台业务处理单板的内存中,称为内存数据库。后台操作维护系统OMS通过其配置管理模块更新配置数据,一方面要将更新的配置数据保存到后台数据库,另一方面也需要将更新的配置数据通过前台BSS的前后台同步模块,更新到前台内存数据库中,以保证后台配置的数据能够及时反映到前台。无线通信基站系统的前后台同步逻辑图如图1所示。由于基站系统业务量大、访问数据频繁,业务处理要求实时性强,因此,前后台同步数据时间应该尽量短,以免影响前台业务运行。 \n现有的前后台同步方法,包括整表同步和增量同步。整表同步就是后台配置管理模块不判断配置数据是否改变,直接将后台所有关系表数据都同步到前台内存数据库中,完成前台的数据的更新。而考虑到同步效率问题,引入了增量同步的概念,增量同步只同步变化的配置数据内容,省去了整表同步过程中大量的冗余数据,减少了前后台的通讯数据量。现有的增量同步方法通常有如下两种:方法一:采用后台连串控制消息,发送到前台,前台逐一执行,实现记录的增量修改。方法二:采用将数据库数据划分为若干数据块,增量同步前,判断各个数据块是否变化,只同步变化的数据块内容,此增量同步方法只适用于主备同步。 \n现有的增量同步有以下不足:对于方法一,当数据量较大且数据修改增多的时候,控制消息逐条发送会使得操作时间延长,前后台交互多,实现较复杂。同时,如果控制消息中间丢失,则可能导致前台数据不一致,影响前台系统的稳定性;对于方法二,前台数据加载操作实现困难,增加前台数据操作的复杂度。目前还缺少一种增量同步后数据更新加载迅速,前台实现复杂度低的数据库数据增量同步方法,不适合应用于前后台的增量同步。因此迫切需要一种前后台通讯交互少,前台加载效率高的前后台表数据增量同步方法。 \n发明内容\n为了克服现有技术的缺陷和不足,本发明的目的在于提供一种无线通信基站系统前后台数据库表数据增量同步方法,能够使移动通讯基站系统前后台配置表数据的快速分发与同步,有效提高移动通讯基站系统前后台间配置表数据同步的效率。 \n为了达到上述目的,本发明一种无线通信基站系统前后台数据库表数据增量同步方法,其特征在于,包括以下步骤: \n(1)后台组织出增量同步事务集;所述组织出增量同步事务集包括:(11)后台将标识增量同步表数量的表数量标识添加到增量同步事务集的第一位;(12)在表数量标识后依次添加增量事务表,并组织表中内容的关联关系; \n其中,增量同步事务包括操作标志和相对应的记录数据内容; \n(2)后台将增量同步事务集数据全部传输给前台内存数据库同步模块; \n(3)前台接收完数据后,对于每条增量事务所对应的记录数据内容,调用对应表中的操作方法,对每个增量事务进行增量同步;所述的步骤(3)具体为: \n(31)前台解析增量同步事务集的表名,并根据表名找到对应的数据库关系表; \n(32)对每一个增量事务,根据增量事务表的记录长度属性获取当前记录数据内容的数据长度,解析出当前增量事务对应的记录数据内容; \n(33)对每一个增量事务,根据增量事务操作标志,确定需要调用的对应表的记录操作方法;并根据解析获得的每条对应的记录数据内容,调用对应表的操作方法,完成每个数据库增量事务的增量同步任务。 \n作为本发明的进一步改进,所述的步骤(12)中组织表中内容关联关系的方法为: \n(121)在增量事务表的首位添加增量同步表的表名; \n(122)在表名后添加标识增量同步记录数据数量的记录数量标识; \n(123)在记录数量标识后添加增量事务操作标志; \n(124)在操作标志后添加记录数据的内容。 \n作为本发明的进一步改进,所述的步骤(1)和步骤(2)之间还包括: \n(A)前台内存数据库同步模块将自己的数据库版本号发送给后台,后台判断比较数据库版本是否一致,如果判断结果为不一致,步骤结束;如果判断结果为一致,则进入步骤(2)。 \n作为本发明的进一步改进,所述的步骤(2)具体为: \n(21)后台发送给前台增量同步事务集数据传输开始请求,前台内存数据库同步模块做 好接收增量同步事务集数据准备,返回给后台准备就绪响应; \n(22)后台将增量同步事务集数据按照数据包的形式传输给前台内存数据库同步模块; \n(23)前台内存数据库同步模块将接收的数据包按顺序存入接收缓冲区,并返回确认响应; \n(24)后台接收到确认响应后,查看增量同步事务集是否传输完毕,如果没有传输完毕,则返回步骤(22);如果传输完毕,则后台向前台发送数据传输完毕消息,进入步骤(25); \n(25)前台接收到传输完毕消息后,返回确认消息。 \n作为本发明的进一步改进,所述的步骤(31)前还包括: \n(a)前台解析出本次需要进行增量同步的增量事务表的数量,并根据增量事务数量,确定需要处理的增量事务的算法次数; \n(b)前台开始对每一个表进行遍历操作,判断是否所有表都遍历完毕,如果判断结果为是,则步骤结束;如果判断结果为否,则进入步骤(31)。 \n作为本发明的进一步改进,所述的步骤(31)和步骤(32)之间还包括: \n(c)前台开始对当前表中的增量事务进行遍历操作,判断是否所有的增量事务操作都执行完毕;如果判断结果为是,则返回步骤(b);否则,进入步骤(32)。 \n作为本发明的进一步改进,所述的步骤(33)具体为: \n(331)对每一个增量事务,前台判断事务操作标志是否是插入标志,如果判断结果为是,则进入步骤(332);否则,进入步骤(333); \n(332)前台调用记录对应关系表的插入方法,将记录数据内容插入到关系表中;并判断本次执行插入操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337)。 \n(333)判断事务操作标志是否是修改标志,如果是修改标志,则转到步骤(334);否则,转到步骤(335); \n(334)前台调用记录对应关系表的修改方法,将记录数据内容更新到当前关系表中,并判断本次执行修改更新操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337); \n(335)判断事务操作标志是否是删除标志,如果是删除标志,则转到步骤(336);否则,步骤结束; \n(336)前台调用记录对应关系表的删除方法,将关系表中指定的记录数据删除,并判断 本次执行删除记录操作是否成功,如果执行成功,则转到步骤(c);否则,转到步骤(337); \n(337)前台记录下执行失败的事务,终止增量同步事务集执行更新操作流程。 \n采用上述的方法,通过后台统计需要增量同步的增量事务集数据,并将该增量事务集数据按照数据包的形式传输给前台,前台根据每个增量事务的操作标志调用对应关系表中的操作方法,对记录数据进行相关操作,能够使移动通讯基站系统前后台配置表数据的快速分发与同步,并且有效的提高移动通讯基站系统前后台间配置表数据同步的效率。 \n附图说明\n图1为无线通信基站系统的前后台同步逻辑示意图; \n图2为本发明增量同步事务集数据组织方式示意图; \n图3为本发明表数据增量同步过程流程示意图; \n图4为本发明增量同步事务集执行流程示意图。 \n具体实施方式\n本发明提供一种无线通信基站系统前后台数据库表数据增量同步的新方法,实现移动通讯基站系统前后台配置表数据的快速分发与同步,有效提高移动通讯基站系统前后台间配置表数据同步的效率。 \n本发明涉及的无线通信基站系统包括后台,即操作维护管理系统OMS,和前台,即基站系统业务处理单板内存数据库;配置数据统一在后台进行配置,后台更新的数据需要同步到前台,以保证前后台数据的一致性。 \n为了实现数据库前后台增量同步,结合数据库系统的特点,将以数据库事务作为一个操作单元。所谓数据库“事务”是一系列由单个任务或应用程序提交的数据库操作。这些操作是一个不可分割的整体。事务将数据库从一个一致性状态转变到另一个一致性状态。即事务执行之前和执行之后,数据库都处于一致性状态。但这种一致性在事务的执行过程中将不被保证。 \n本发明涉及的“增量事务”由两部分组成,一个是增量事务的操作标志(操作标志包括三种,即插入、修改和删除),另一个是增量事务对应的表记录数据。一个增量事务对应一个增量事务操作标志和一条对应的表记录数据内容。 \n本发明的数据库数据增量同步过程可以分为如下三个步骤实现: \n1、数据库增量数据的获取阶段: \n增量配置是修改和更新以一条条的记录为单位进行,每条记录需要对应一条数据库增量事务操作标志。由于各关系表存在一定的关联关系,某关系表的记录发生改变可能会导致其关联关系表的记录相应变化,后台将保证关联关系和操作顺序的正确性。 \n后台需要统计出共有哪些关系表需要增量同步,每张关系表(以表名来区分每个表)中有哪些记录需要进行增量同步,以及这些记录需要进行的数据库事务操作方法。增量同步数据库增量事务操作类型共有三种,即插入、修改和删除操作。 \n增量事务集的排列顺序首先以关系表为单位进行排列,关系表的排列顺序需要保证数据库内部的关联关系;然后,对于每个关系表,要说明该关系表中需要进行增量同步的增量事务数量;对于每个增量事务,包括一个该增量事务的操作标志(插入、修改或删除操作)和一条该增量事务对应的记录数据内容。每个表中可以有一个或多个增量事务。增量事务的排列顺序需要保证数据库内部的关联关系。 \n这里,也可以事先说明需要进行增量同步的表的数量,当然该步骤为可选。 \n2、增量数据传输阶段: \n在进行数据传输前,前台内存数据库同步模块可以将自己的数据库版本号发送给后台,后台比较数据库版本是否一致,如果不一致,则可能记录数据字段格式不一致,无法完成增量同步。 \n后台发送给前台数据库传输开始请求,前台数据库同步模块做好接收增量事务集数据准备(如初始化接收数据缓冲区,以及初始化相关接收标志和变量。),并返回给后台准备就绪响应。 \n后台将数据库增量数据的获取阶段准备好的增量事务集数据按照数据包的形式传输给前台内存数据库同步模块(可采用成熟的滑动窗口等传输方法进行传输)。前台数据库同步模块将接收的数据包顺序存入数据接收缓冲区,并返回后台接收确认响应。 \n后台收到前台接收确认响应后,查看是否增量事务集数据都传输完毕,如果没有传输完毕,则继续传输增量事务集数据;如果所有增量事务集数据都传输完毕,则向前台发送数据传输完毕消息,并等待前台增量数据更新执行结果消息。前台接收到传输完毕消息后,返回确认消息,并准备执行增量数据更新操作。 \n3、增量数据更新执行阶段: \n前台接收完数据后,对接收的增量事务集数据进行解析,具体来说: \n根据增量表数量,确定需要处理的表的算法次数; \n根据表名找到对应的数据库关系表;根据事务数量,确定需要处理的增量事务的算法次数; \n对于每一个增量事务,根据增量事务操作标志,可以确定需要调用的对应表的记录操作方法;根据当前对应表的表记录长度属性可以获得当前记录数据内容的数据长度,进而解析出当前增量事务对应的记录数据内容。这样,对于增量事务,根据每条对应的记录数据内容,调用对应表的操作方法(插入、修改或删除方法),完成每个数据库增量事务的更新执行任务。 \n当所有数据库增量事务都解析执行成功后,返回给后台增量数据更新执行成功消息;如果更新执行过程有增量事务执行失败,返回后台增量数据更新执行失败消息。 \n下面结合图1、图2、图3、图4和具体的实施例对本发明做进一步的详细说明。 \n图3为本发明涉及的前后台表数据增量同步的前后台交互实现流程,其中交互的双方为后台和前台数据库。 \n步骤S201:后台配置管理模块发起增量同步,开始统计配置数据,整理出需要进行增量同步的数据,并注意保证表的关联关系和操作顺序的正确性。例如,可以按照图2所示的形式组织好后台增量同步事务集数据,其中: \nS101:是增量同步事务集的第一位,表示需要进行增量同步的表的数量; \nS102:是数据增量同步的一个表名,前台可以根据表名对应一个关系表。 \nS103:是指当前表数据增量同步表中,此次需要进行更新的记录数量。 \nS104:是记录事务操作标志,表示需要进行更新的记录的操作方法,该标志可以有“修改、删除和插入”三种,分别标志着该记录对应的数据库事务执行方法。 \nS105:是当前进行更新的一条记录数据的内容。 \n按照上述形式组织好数据,完成增量同步事务集数据的获取与准备。 \n步骤S202:后台向前台数据库发送增量同步事务集请求消息。 \n步骤S203:前台收到请求,向后台返回增量同步事务集响应消息,消息中携带前台的数据库版本号。 \n步骤S204:后台判断前台版本号是否与后台的版本号一致,如果版本号不一致,则不能进行增量同步,结束操作,并在后台显示失败原因;如果版本号一致,则继续进行步骤S205。 \n步骤S205:后台发送数据传输开始请求。 \n步骤S206:前台准备接收增量事务集数据,准备接收数据缓冲区。 \n步骤S207:前台返回给后台数据传输开始响应,表示缓冲区准备完成。 \n步骤S208:后台发送增量事务集数据包(例如:可按照滑动窗口方法顺序移动发送数据窗口)。 \n步骤S209:前台将接收的数据包顺序写入接收数据缓冲区,返回给后台响应消息。 \n步骤S210:后台收到响应消息,查看是否增量事务集数据都传送完毕,如果没有,则转向步骤S308继续传输未传输完毕的增量事务集数据;如果所有增量事务集数据都传送完毕,则转向步骤S311。 \n步骤S211:后台向前台发送增量事务集数据传输结束消息。 \n步骤S212:前台结束接收数据,并返回数据传输结束响应消息。 \n步骤S213:前台解析接收到的增量事务集数据,根据图2所示的增量同步事务集数据格式,逐条解析出每条增量同步记录的操作方法,并调用相应的表记录操作方法进行事务更新操作;具体流程见增量同步事务集执行流程。 \n步骤S214:所有事务都执行结束后,前台向后台反馈事务集执行结果,后台显示增量同步执行结果,增量同步过程结束。进一步地,如果事务集更新执行失败,返回消息可携带失败的数据库事务,以便在后台显示执行失败的增量同步表记录操作。 \n下面具体说明增量同步事务集执行更新操作流程(图3中步骤S213),参照图4对此流程进行说明: \n步骤S301:开始解析增量事务集,首先解析出本次需要进行增量更新事务的表的数量。 \n步骤S302:开始对后面的每一个表进行遍历操作,首先判断是否所有表都遍历完毕。如果所有表都遍历完毕,则结束增量同步事务集执行更新操作流程;如果没有遍历完毕,则转步骤S303。 \n步骤S303:开始解析一个表的事务集数据,首先解析当前表名。 \n步骤S304:然后解析当前表中,需要进行更新事务操作的记录数量。 \n步骤S305:开始对当前表中后面的每个记录事务操作进行遍历,首先判断是否所有的记录事务操作都执行完毕。如果当前表中所有的记录事务操作都执行完毕,则转步骤S302;否则,转到步骤S306。 \n步骤S306:解析下一个记录操作标志和记录数据。其中记录数据的解析长度根据对应关系表的记录长度属性获得。 \n步骤S307:判断事务操作标志是否是插入标志。如果是插入标志,则转到步骤S308;否则,转到步骤S310。 \n步骤S308:调用记录对应关系表的插入方法,将记录数据内容插入到当前关系表中。 \n步骤S309:判断本次执行插入操作是否成功。如果执行成功,则转到步骤S305;否则,转到步骤S316。 \n步骤S310:判断事务操作标志是否是修改标志。如果是修改标志,则转到步骤S311;否则,转到步骤S313。 \n步骤S311:调用记录对应关系表的修改方法,将记录数据内容更新到当前关系表中。其中,对于需要修改记录的定位,可以根据记录数据内容获取记录关键字,根据关键字来定位关系表中的记录位置。 \n步骤S312:判断本次执行修改更新操作是否成功。如果执行成功,则转到步骤S305;否则,转到步骤S316。 \n步骤S313:判断事务操作标志是否是删除标志。如果是删除标志,则转到步骤S314;否则,增量标志错误,则终止增量同步事务集执行更新操作流程。 \n步骤S314:调用记录对应关系表的删除方法,将关系表中指定的记录数据删除。其中,对于关系表中需要删除记录的定位,可以根据携带的记录数据内容获取记录关键字,根据关键字来定位关系表中的记录位置。 \n步骤S315:判断本次执行删除记录操作是否成功。如果执行成功,则转到步骤S305;否则,转到步骤S316。 \n步骤S316:记录下执行失败的事务,然后终止增量同步事务集执行更新操作流程。例如:记录的内容可以包括关系表名、记录内容以及记录操作标志。 \n其中,步骤S307、步骤S310、步骤S313及其对应的操作执行顺序可以任意调换。 \n以上所述,为本发明的较佳具体实施方式。任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明权利要求书所保护的范围之内。通过采用本实现方案,可以有效提高前后台同步的性能。
法律信息
- 2010-12-08
- 2008-02-27
- 2008-01-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-05-18
|
2003-11-10
| | |
2
| | 暂无 |
1996-04-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |