CN100337236C - 一种使前后台数据库中数据相一致的方法 - Google Patents

一种使前后台数据库中数据相一致的方法 Download PDF

Info

Publication number
CN100337236C
CN100337236C CNB031559093A CN03155909A CN100337236C CN 100337236 C CN100337236 C CN 100337236C CN B031559093 A CNB031559093 A CN B031559093A CN 03155909 A CN03155909 A CN 03155909A CN 100337236 C CN100337236 C CN 100337236C
Authority
CN
China
Prior art keywords
data
veneer
foreground
version number
backstage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB031559093A
Other languages
English (en)
Other versions
CN1591350A (zh
Inventor
王利军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031559093A priority Critical patent/CN100337236C/zh
Publication of CN1591350A publication Critical patent/CN1591350A/zh
Application granted granted Critical
Publication of CN100337236C publication Critical patent/CN100337236C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明有关一种使前后台数据库中数据相一致的方法,包括步骤:设定前台单板数据库的版本号;后台向前台单板发送数据更新命令消息,该数据更新消息中包含后台保存的对应单板数据库的版本号;前台单板判断消息中携带的版本号和本板中数据库的版本号是否相同;如果是,则执行更新命令,将本板数据库的版本号升级,并向后台返回成功消息和升级后的版本号;否则,返回失败消息;后台接收前台单板返回的成功消息后,更新后台数据库中的相应数据,并升级对应数据库的版本号;后台接收前台单板返回的失败消息后,将该次数据更新事务记录到一单板事务存储空间中,再次发起数据更新过程。使用本发明的方法能有效解决前后台系统配置中数据库数据不一致的问题。

Description

一种使前后台数据库中数据相一致的方法
技术领域
本发明涉及采用前后台配置方式的系统,尤指一种使前后台数据库中数据相一致的方法。
背景技术
对于采用前后台配置方式的系统中,在联机状态下,后台有一套完整的数据库,前台各单板具有一套和自身单板相关的数据库,包括全局数据和本板数据。在每次更新时,后台向前台各板广播要执行的事务操作,等到收到各板返回的成功响应后,再更新后台数据库数据。
但是,当后台接收返回消息超时,会认为数据更新失败,而此时前台单板已更新了数据,这就造成前台部分单板数据与后台数据库数据不一致的现象。在出现这种不一致问题后,以后再对数据库数据进行更新,往往会失败,这将影响以后对系统的操作和维护。
发明内容
本发明提供一种使前后台数据库中数据相一致的方法,解决前后台配置系统中由于数据更新带来前后台数据库数据不一致的问题。
本发明方法包括下列步骤:
A)设定前台单板数据库的版本号;
B)后台向前台单板发送数据更新消息,该数据更新消息中包含后台保存的对应单板数据库的版本号;
C)前台对应单板接收消息后,判断消息中携带的版本号和本板中数据库的版本号是否相同;
D)如果是,则执行更新命令,转入步骤E;如果否,则向后台返回失败消息,结束本次数据更新过程;
E)进一步判断数据更新命令是否成功执行,如果是,则将本板数据库的版本号升级,并向后台返回成功消息和升级后的版本号,转入步骤F;否则,向后台返回失败消息和本板当前版本号,转入步骤G;
F)后台接收前台单板返回的成功消息后,更新后台数据库中的相应数据,并升级对应数据库的版本号,结束本次数据更新过程;
G)将该次数据更新命令作为单板事务记录到一单板事务存储空间中;
H)后台根据单板事务存储空间中的存储记录,再次发起数据更新过程。
所述步骤D中如果判断结果为否,则进一步包括下列步骤:
当判断出数据更新消息中携带的版本号为前台单板数据库升级前的版本号时,则在返回的失败消息中指明失败原因是上次已被执行的重复更新命令;
后台收到上述失败消息后,更新后台数据库中对应上次更新命令的数据并升级数据库的版本号,使之与前台单板数据库的版本号相一致;
结束本次数据更新过程。
当判断出数据更新消息中携带的版本号为前台单板数据库当前版本号的升级后版本,则在返回的失败消息中指明失败原因是后台版本超前;
后台收到上述失败消息后,则使前台单板重新读取后台数据库当前版本的数据,并使前台单板数据库的版本号与后台一致;检查单板事务存储空间是否存储有与本板相关的单板事务记录,如果有,则按时间顺序重发这些记录所对应的数据更新命令,继续数据更新过程;否则,等待后台发出下一更新命令。
所述步骤E中如果判断结果为否,在进入步骤G之前,进一步包括下列步骤:
判断更新数据是否为非法数据,如果是,则在失败消息中注明失败原因为数据非法;
后台收到上述失败消息后,判断出所述失败原因为数据非法时,结束本次数据更新过程。
所述步骤H包括:
判断连续重发数据更新过程是否超过规定次数,如果是,则使前台单板重新读取后台数据库当前版本的数据,并使前台单板数据库的版本号与后台一致;并清空单板事务存储空间中的所有事务记录。
根据本发明的上述方法,后台可同时向前台所有单板广播数据更新命令,每块单板更新命令中包括后台数据库中保存的该单板数据库的版本号和具体事务。
当各单板中返回有失败消息时,则对返回失败消息的单板单独重发数据更新命令。
根据本发明的上述方法,在后台中,可为每块单板设置一单板事务存储空间。
使用本发明的方法,能有效避免前后台配置系统中前后台数据库中数据不一致的问题,确保后台能对前台单板实现正确操作与维护。
具体实施方式
在后台,为前台每块单板保留一个事务存储空间,用来记录失败事务。在前台单板和后台中分别保留一个该单板数据库的版本号。不管前台还是后台,只要和该单板相关的数据库更新成功,都分别升级各自的版本号。在正常情况下,前台版本号应该和后台保持一致。在数据更新命令消息中包含后台保存的版本号,在数据更新结果消息中包含前台版本号。
如果某次数据库更新失败,若不是因为数据非法而且单板工作正常,后台需要从单板事务存储空间中读取单板事务,重新执行。若超过规定次数后,仍然没有成功,则认为前后台数据库存在严重不一致情形,需要前台重新读取后台数据和重新设置版本号。
某一单板的数据库数据更新和其他单板没有关系。单板数据更新具体过程如下:
1、不管是正常的数据更新命令还是重发的数据更新命令,前台收到后,检查消息中携带的版本号,如果和前台单板数据库的版本号相一致,则认为消息合法,执行更新命令;如果执行成功,前台将版本号升级,在更新结果中返回成功消息和升级后的版本号;如果执行失败,在更新结果中返回的失败消息,指出失败原因是数据非法或数据更新过程失败,以及当前前台版本号。
2、如果数据更新消息中所携带的数据库版本号为前台版本号升级前版本号,则认为是上一次重复命令,在更新结果中返回失败消息,指出失败原因是属于上次重复更新命令;后台收到该失败消息后,更新后台版本号,执行上次事务更新后台数据;
3、如果后台版本号是前台版本号升级后版本,这在一般情况下是不可能的,则认为出现严重不一致情形,在更新结果中返回失败消息,失败原因是后台版本超前。如果是因为后台版本超前,这表示前后台出现严重不一致,要求前台重新读取后台当前版本配置的数据库数据,前后台版本号同步,以后台版本号为准。读取成功后,如果事务存储空间还存在和本板相关的失败事务,那么按照失败的时间顺序再重发这些数据更新命令消息,每次执行一个事务。只有当一次事务执行成功后,才转发下一个事务。
4、如果消息丢失,前台没有收到,则不会进行任何处理。
5、如果前台单板数据库更新成功,前台本板升级版本号,在更新结果消息中返回给后台,后台判断前台返回的版本号就是后台保存的该单板版本升级后的下一个版本,认为数据更新成功,也更新后台该单板数据库的数据和版本号。
6、如果单板更新成功,版本号也升级,并返回更新结果消息,但后台接收超时,认为前台更新失败,则后台保留原先版本号不变,并保存这次执行的事务到该单板的事务存储空间中。
7、如果单板更新失败,保持版本不变,并向后台返回失败消息和当前版本号,指出失败原因。如果是因为数据非法,那么后台认为这是一次无效更新,保持后台版本号不变,不记录这次事务过程;否则,认为是数据更新过程失败。如果是数据更新过程失败,那么后台认为本次更新失败,保持后台版本不变,记录这次事务过程到事务存储空间,再次发起更新过程。
对于重新发起的更新过程,如果超过规定次数,仍然没有成功,那么需要前台重新读取后台当前版本配置,前后台版本号同步,清空事务存储空间中的事务。
如果重新读取过程也失败,则认为单板宕机。
对于全局数据库更新,后台可同时向前台所有单板广播更新命令,每块单板更新命令中包含后台中该单板数据库版本号和具体事务。它要求所有单板同时执行更新命令,每块单板执行情况和本板数据库更新情况类似。另外,后台需要在规定时间内接收所有单板的更新结果消息。
对于全局数据库更新出现部分失败的情况,判断具体情况,对于某些失败的单板,如果需要重发,单独发送更新命令,不向所有单板广播。具体情形如下:
1)如有只有少数单板返回失败,则表示数据是正确的,只是少数单板的数据更新过程失败;则后台升级返回成功的单板的数据库版本号,并更新后台全局数据库数据,对于返回失败的单板,不对其数据库版本号升级,并保存本次事务到该单板的事务存储空间,然后单独对失败单板再发起更新命令。具体步骤与单板数据库更新过程相同。
2)如果前台单板全部返回失败,则只可能是数据非法或全部单板的数据更新过程失败。对于前者,可以认为本次更新失败,结束本次数据更新过程,后台保持全局数据库数据不变,各单板版本号不变;对于后者,可以考虑再次重发更新命令,向全部单板广播;如果一直重复多次,仍然都是返回数据更新过程失败,超过规定次数后,可以认为本次更新命令失败,结束本次数据更新过程。
3)若返回的数据更新结果除成功外,至少有一块单板接收超时或失败,则后台更新全局数据库数据,同时更新返回成功单板的数据库版本号,对接收超时或失败的单板单个重发更新命令。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (8)

1、一种使前后台数据库中数据相一致的方法,包括下列步骤:
A)设定前台单板数据库的版本号;
B)后台向前台单板发送数据更新消息,该数据更新消息中包含后台保存的对应单板数据库的版本号;
C)前台对应单板接收消息后,判断消息中携带的版本号和本板中数据库的版本号是否相同;
D)如果是,则执行更新命令,转入步骤E;如果否,则向后台返回失败消息,结束本次数据更新过程;
E)进一步判断数据更新命令是否成功执行,如果是,则将本板数据库的版本号升级,并向后台返回成功消息和升级后的版本号,转入步骤F;否则,向后台返回失败消息和本板当前版本号,转入步骤G;
F)后台接收前台单板返回的成功消息后,更新后台数据库中的相应数据,并升级对应数据库的版本号,结束本次数据更新过程;
G)将该次数据更新命令作为单板事务记录到一单板事务存储空间中;
H)后台根据单板事务存储空间中的存储记录,再次发起数据更新过程。
2、如权利要求1所述的一种使前后台数据库中数据相一致的方法,其特征在于:所述步骤D中如果判断结果为否,则进一步包括下列步骤:
当判断出数据更新消息中携带的版本号为前台单板数据库升级前的版本号时,则在返回的失败消息中指明失败原因是上次已被执行的重复更新命令;
后台收到上述失败消息后,更新后台数据库中对应上次更新命令的数据并升级数据库的版本号,使之与前台单板数据库的版本号相一致;
结束本次数据更新过程。
3、如权利要求1所述的一种使前后台数据库中数据相一致的方法,其特征在于:所述步骤D中如果判断结果为否,则进一步包括下列步骤:
当判断出数据更新消息中携带的版本号为前台单板数据库当前版本号的升级后版本,则在返回的失败消息中指明失败原因是后台版本超前;
后台收到上述失败消息后,则使前台单板重新读取后台数据库当前版本的数据,并使前台单板数据库的版本号与后台一致;检查单板事务存储空间是否存储有与本板相关的单板事务记录,如果有,则按时间顺序重发这些记录所对应的数据更新命令,继续数据更新过程;否则,等待后台发出下一更新命令。
4、如权利要求1所述的一种使前后台数据库中数据相一致的方法,其特征在于:所述步骤E中如果判断结果为否,在进入步骤G之前,进一步包括下列步骤:
判断更新数据是否为非法数据,如果是,则在失败消息中注明失败原因为数据非法;
后台收到上述失败消息后,判断出所述失败原因为数据非法时,结束本次数据更新过程。
5、如权利要求1所述的一种使前后台数据库中数据相一致的方法,其特征在于:所述步骤H包括:
判断连续重发数据更新过程是否超过规定次数,如果是,则使前台单板重新读取后台数据库当前版本的数据,并使前台单板数据库的版本号与后台一致;并清空单板事务存储空间中的所有事务记录。
6、如权利要求1所述的一种使前后台数据库中数据相一致的方法,其特征在于:后台可同时向前台所有单板广播数据更新命令,每块单板更新命令中包括后台数据库中保存的该单板数据库的版本号和具体事务。
7、如权利要求6所述的一种使前后台数据库中数据相一致的方法,其特征在于:当各单板中返回有失败消息时,则对返回失败消息的单板单独重发数据更新命令。
8、如权利要求6所述的一种使前后台数据库中数据相一致的方法,其特征在于:在后台中,可为每块单板设置一单板事务存储空间。
CNB031559093A 2003-08-26 2003-08-26 一种使前后台数据库中数据相一致的方法 Expired - Fee Related CN100337236C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031559093A CN100337236C (zh) 2003-08-26 2003-08-26 一种使前后台数据库中数据相一致的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031559093A CN100337236C (zh) 2003-08-26 2003-08-26 一种使前后台数据库中数据相一致的方法

Publications (2)

Publication Number Publication Date
CN1591350A CN1591350A (zh) 2005-03-09
CN100337236C true CN100337236C (zh) 2007-09-12

Family

ID=34598239

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031559093A Expired - Fee Related CN100337236C (zh) 2003-08-26 2003-08-26 一种使前后台数据库中数据相一致的方法

Country Status (1)

Country Link
CN (1) CN100337236C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4442902B2 (ja) * 2005-07-06 2010-03-31 キヤノン株式会社 情報処理装置とその方法及びプログラム
CN101316258B (zh) * 2007-05-29 2013-06-26 阿里巴巴集团控股有限公司 一种保持会话信息和数据库同步的方法和装置
CN102006156B (zh) * 2009-09-02 2015-05-13 中兴通讯股份有限公司 配置数据的板间同步方法及系统
CN102025712B (zh) * 2009-09-15 2013-08-07 上海华为技术有限公司 一种数据更新方法、装置和系统
CN102024040A (zh) * 2010-12-08 2011-04-20 北京握奇数据系统有限公司 数据库同步方法、装置和系统
CN102436633A (zh) * 2011-11-30 2012-05-02 华为技术有限公司 数据管理方法及系统、数据库系统
CN103425651B (zh) * 2012-05-15 2017-10-24 北大方正集团有限公司 一种数据完整性检测的方法和设备
CN103645963B (zh) * 2013-12-26 2016-06-29 深圳市迪菲特科技股份有限公司 一种存储系统及其数据一致性校验方法
CN106533721B (zh) * 2015-09-11 2021-03-02 中兴通讯股份有限公司 网络管理数据配置方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124001A (zh) * 1994-09-13 1996-06-05 美国电报电话公司 一种用于电信网络系统中的更新复制数据库的方法和系统
CN1278627A (zh) * 1999-06-17 2001-01-03 国际商业机器公司 用于自动同步分布文档的版本的方法和装置
WO2003009092A2 (en) * 2001-07-16 2003-01-30 Bea Systems, Inc. Data replication protocol
WO2003038654A1 (en) * 2001-11-01 2003-05-08 Verisign, Inc. Method and system for updating a remote database

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124001A (zh) * 1994-09-13 1996-06-05 美国电报电话公司 一种用于电信网络系统中的更新复制数据库的方法和系统
CN1278627A (zh) * 1999-06-17 2001-01-03 国际商业机器公司 用于自动同步分布文档的版本的方法和装置
WO2003009092A2 (en) * 2001-07-16 2003-01-30 Bea Systems, Inc. Data replication protocol
WO2003038654A1 (en) * 2001-11-01 2003-05-08 Verisign, Inc. Method and system for updating a remote database

Also Published As

Publication number Publication date
CN1591350A (zh) 2005-03-09

Similar Documents

Publication Publication Date Title
CN100337236C (zh) 一种使前后台数据库中数据相一致的方法
CN1202662A (zh) 包括安装到网络中的数据接收站的系统
JP2708386B2 (ja) 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
CN1205550C (zh) 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统
US6668304B1 (en) Transaction support on logical disks
EP1895418B1 (en) Nonvolatile memory device, method of writing data, and method of reading out data
CN101051285A (zh) 计算机网络数据备份中文件匹配的方法
CN100340982C (zh) 一种传输设备单板软件在线升级出错后的恢复方法
CN1411580A (zh) 客户机-服务器环境中差异备份系统的管理
US20170024324A1 (en) Method for distributed transaction processing in flash memory
CN1694070A (zh) Pos终端设备的升级方法
CN1716248A (zh) 并发事务和页面同步
CN1801090A (zh) 移动通信终端的文件更新系统和启动管理系统及其方法
CN1245686C (zh) 嵌入式系统中软件补丁的加载与同步的方法
CN113190281B (zh) 一种基于rowid区间的初始化装载方法与装置
CN1315043C (zh) 一种嵌入式程序的兼容性升级方法
CN1946035A (zh) 一种网元数据配置管理的方法及网元
CN1975717A (zh) 搜索系统索引切换的方法及搜索系统
CN115309336A (zh) 数据写入方法、缓存信息更新方法及相关装置
CN1470985A (zh) 应用于外围装置的错误回报及修正方法
CN1542612A (zh) 一种单板软件自动下载方法及装置
CN111782622B (zh) 日志处理方法、装置、服务器及存储介质
CN1862503A (zh) 一种版本在线升级方法及装置
CN1257623C (zh) 一种数据同步方法
CN1606730A (zh) 用在网络环境中的设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070912

Termination date: 20140826

EXPY Termination of patent right or utility model