CN101162988A - 一种采用主备用数据区实现不中断业务的数据同步方法 - Google Patents
一种采用主备用数据区实现不中断业务的数据同步方法 Download PDFInfo
- Publication number
- CN101162988A CN101162988A CNA2006101411410A CN200610141141A CN101162988A CN 101162988 A CN101162988 A CN 101162988A CN A2006101411410 A CNA2006101411410 A CN A2006101411410A CN 200610141141 A CN200610141141 A CN 200610141141A CN 101162988 A CN101162988 A CN 101162988A
- Authority
- CN
- China
- Prior art keywords
- data
- data area
- standby
- synchronization
- pointer
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种采用主备用数据区实现不中断业务的数据同步方法,用于具有客户端和服务器端的通信应用系统,包括以下步骤:在服务器端预先设置两个结构相同的数据区交替作为主、备用数据区;在数据同步时只向所述备用数据区写入新数据,而客户端用户仍访问主用数据区中的数据;当新数据写入完成后切换数据区的主备用状态。本发明方法由于在同步开始后允许新的用户访问系统,不会造成同步过程中的业务停用;且在同步开始前访问系统的用户会话不会因为数据不一致而引起访问中断;同时由于采用同步标志进行保护,即当有用户在访问备用数据区时不允许执行数据同步操作,保证了数据的一致性和安全性。
Description
技术领域
本发明涉及一种在不中断业务的情况下实现数据同步的方法,属于电信和计算机应用领域,具体地说,涉及一种适用于更新在线系统中被多用户访问的公共数据的场合下,采用主备用数据区实现不中断业务的数据同步方法。
背景技术
对一个电信或计算机应用系统而言,往往会有多个用户通过终端(如固定或移动电话、WWW浏览器等)对系统进行并发地访问,在应用系统中的公共数据为用户提供电信或信息服务,例如:在电信增值业务领域,用户拨打歌曲点播的业务接入码后,触发IVR系统中的歌曲点播业务;在业务逻辑的控制下,IVR系统播放语音引导用户按键选择某一歌曲类别,然后在选择该类下的一首歌曲;诸如歌曲类别和歌曲名称等信息就是该IVR系统的公共数据,这些数据会被多个用户会话并发访问。
为更新应用系统中的信息,管理员在系统后台配置新的数据(如通过点播菜单编辑软件增加或删除了某一类歌曲等),然后将新数据写入到在线系统的公共数据区中,使用户可访问到新的信息,这就是数据同步的过程。
现有的数据同步一般采用两种方式:
第一种方式是不考虑当前正在访问系统的用户会话,直接将后台的新数据写入到在线系统的公共数据区,但由于同步前后的新旧数据存在差异所以可能会导致用户会话的异常中断,从而降低了系统的稳定性。例如,在数据同步前,用户选择了点播某一歌曲,而在数据同步后的新点播菜单中这首歌曲却被删除,则当系统要播放该首歌曲时会因为歌曲数据不存在而使得放音失败。
第二种方式是为避免造成在线用户会话的异常中断,在向公共数据区写入数据前设置同步标志,在该标志存在时不允许新的用户访问系统,系统等待所有的在线用户会话结束后,才将新的数据写入公共数据区,该操作完成后系统清除同步标志,之后才允许新的用户访问系统。这种方式虽然不会造成在线用户访问时出现可能的中断,但是在同步开始后新的用户无法访问系统,实际上也是降低了系统的可用性。
在实际应用中,为了尽量减少以上两种数据同步方法对用户访问的影响,往往系统管理员选择在用户访问量较低的时段(通常是晚上11点至临晨3点)来执行数据同步的操作,故无法保证信息更新的及时性,也给系统的维护工作带来不便。
因此,现有技术存在有待于发展之处。
发明内容
本发明的目的是提供一种采用主备用数据区实现不中断业务的数据同步方法,解决因数据同步造成系统访问中断的问题,保证在线系统的运行不受数据同步的影响。
本发明的技术方案包括:
一种采用主备用数据区实现不中断业务的数据同步方法,用于具有客户端和服务器端的通信应用系统,其中,包括以下步骤:
A、在服务器端预先设置两个结构相同的数据区交替作为主、备用数据区;
B、在数据同步时只向所述备用数据区写入新数据,而客户端用户仍访问主用数据区中的数据;
C、当新数据写入完成后切换数据区的主备用状态。
所述的方法,其中,所述步骤A还包括:
A1、在每个数据区设置一个访问计数器,记录每个数据区的在线用户访问量。
所述的方法,其中,所述步骤A还包括:
A2、创建主、备用数据区指针,分别记录主备用数据区的位置。
所述的方法,其中,所述步骤B还包括:
B1、系统设置主备用数据库的同步标志;
B2、系统将后台最新的数据写入到备用数据区指针所指向的数据区,同时用户仍访问系统中主用数据区指针所指向的数据区;
B3、在最新数据写入到所述备用数据区完成后,系统将主、备用数据区指针进行互相赋值,即切换两个数据区的主、备用身份;
B4、在主备用数据区切换后,新的用户会话访问存储新信息的主用数据区;
B5、当备用数据区的访问计数器为0时,系统清除同步标志。
所述的方法,其中,在所述同步标志显示本次数据同步结束前,不执行下一次的数据同步。
所述的方法,其中,所述访问计数器的操作过程包括:
在每个用户会话开始时,将主用数据区指针的值保存到该会话空间中,并将该指针所指数据区的访问计数器加1;在后续的会话中,用户一直访问该其会话空间中保存的指针所指向的数据区,直至每一个用户会话结束,系统将该用户会话所访问的数据区对应的访问计数器减1。
所述的方法,其中,所述系统在初始化时执行以下步骤:
将主、备用数据区指针分别指向不同的所述两个结构相同的数据区;
将两个数据区的访问计数器均置为0;
将用户访问所需的信息写入到主用数据区指针所指向的数据区中。
本发明所提供的一种采用主备用数据区实现不中断业务的数据同步方法,由于在同步开始后允许新的用户访问系统,不会造成同步过程中的业务停用;且在同步开始前访问系统的用户会话不会因为数据不一致而引起访问中断;同时由于采用同步标志进行保护,即当有用户在访问备用数据区时不允许执行数据同步操作,保证了数据的一致性和安全性。
附图说明
图1是本发明所涉及的一种电信应用系统组网示意图;
图2本发明的方法的流程示意图。
具体实施方式
以下结合附图,将对本发明的各具体实施例做进一步的详细说明。
本发明的采用主备用数据区实现不中断业务的数据同步方法,如图1所示,用于一电信应用系统中,其包括一后台服务器、一系统管理台、一在线服务器,通过本地域网络连接,通过所述在线服务器和通信网向各用户终端设备提供服务。
本发明方法在所述后台服务器或在线服务器上设置采用两个结构相同的数据区交替作为主备用,在数据同步时只向备用数据区写入新数据而用户仍访问主用数据区中的数据,当新数据写入完成后切换数据区的主备用状态。
本发明方法的处理步骤包括:
A、创建两个结构完全相同的数据区,每个数据区包括一个访问计数器,记录每个数据区的在线用户访问量;
B、创建主、备用数据区指针,分别记录主备用数据区的位置;
C、系统初始化时执行:
C1、将主、备用数据区指针分别指向不同的数据区;
C2、将两个数据区的访问计数器均置为0;
C3、将用户访问所需的信息写入到主用数据区指针所指向的数据区中;
D、系统初始化完成后执行:
D1、在每个用户会话开始,将主用数据区指针的值保存到该会话空间中,并将该指针所指数据区的访问计数器加1;
D2、在后续的会话中,用户一直访问该其会话空间中保存的指针所指向的数据区;
D3、在每一个用户会话结束时,系统要将该用户会话所访问的数据区对应的访问计数器减1;
E、数据同步开始后:
E1、系统在主备用数据区上设置同步标志;
E2、系统将后台最新的数据写入到备用数据区指针所指向的数据区;
在执行这个过程中,用户仍访问系统中主用数据区指针所指向的数据区;
E3、在E2步骤完成后,系统将主、备用数据区指针进行互相赋值,即切换两个数据区的主、备用身份;
E4、在指针互置后,新的用户会话访问存储新信息的主用数据区;原有用户仍继续访问该切换后的备用数据区(即切换前的主用数据区);
E5、当切换后的备用数据区的访问计数器为0时(即所有的原有用户已经访问结束),系统清除同步标志。
本次数据同步结束。
为保证主备用数据的稳定性和一致性,只有本次同步结束后,才允许执行下一次的同步。
如图2所示,以下具体描述本发明方法的一实施例:
首先,本发明方法的系统在其存储空间中创建如下的变量:
两个结构完全相同的数据区变量DataRegion_A和DataRegion_B,该类变量是具有两个成员的结构:一个成员是存储被用户访问数据的信息Inform,即DataRegion_A.Inform和DaaRegion_B.Inform,另一个成员是记录访问该数据区的在线用户数的计数器Counter,即DataRegion_A.Countet和DataRegion_B.Counter;
两个指向数据区变量的指针Pointer_Active和Pointer_Standby,Pointer_Active为主用数据区指针,Pointer_Standby为备用数据区指针,分别指示主或备用数据区;
保存用户会话所访问数据区位置的数据访问指针数组Pointer_Session[];
同步标识InSynch,1表示系统正在执行数据同步操作,0表示系统当前未执行数据同步操作。
在初始化阶段,系统执行如下的操作:
将Pointer_Active指向数据区变量DataRegion_A,即数据区A做为主用数据区,将Pointer_Standby指向数据区变量DataRegion_B,即数据区B做为备用数据区;
将DataRegion_A.Counter和DataRegion_B.Counter赋初值0;
在DataRegion_A.Inform中设置为用户访问的初始数据;将DataRegion_B.Inform中设置为空。
其次,为实现本发明方法方案,系统需对用户会话进行如下的处理:
在任何一个用户会话开始时执行:
i.为该会话分配一个唯一的会话标识,即SessionID;
ii.将主用数据区Pointer_Active指针的当前值写入该会话对应的数据访问指针数组变量Pointer_Session[SessionID]中;
iii.将Pointer-Session[SessionID]所指的数据区的访问计数器加1,即执行Pointer-Session[SessionID]->Counter++。
在用户会话访问系统的过程中,该会话始终访问Pointer_Session[SessionID]所指数据区中的信息,即访问Pointer-Session[SessionID]->Inform。
当一个用户会话结束时,系统执行如下的操作:将Pointer-Session[SessionID]所指的数据区对应访问计数器减1,即执行Pointer-Session[SessionID]->Counter--。
基于以上的变量和会话处理,不中断业务的数据同步具备了实现条件。管理员在后台完成新数据的配置后,选择数据同步,系统按照如下的步骤进行处理:
a、系统判断同步标志InSynch是否为1:若是1,表示上次的数据同步还未结束,故不允许新的数据同步;若为0,则可执行本次数据同步;
b、系统设置同步标志InSynch为1,开始数据同步;
c、系统删除备用数据区指针Pointer_Standby所指向的数据区中的信息,即清空Pointer_Standby->Inform中的数据;
d、系统将后台新的数据逐一地插入到Pointer_Standby所指向的数据区;
e、在写入数据完成后,系统将主用数据区指针Pointer_Active和备用数据区指针Pointer_Standby指针进行互为置值,即分别指向对方所指的数据区,如此,主备用数据区即已切换;
f、当Pointer_Standby所指数据区的计数器Pointer_Standby->Counter为0时,表明原有用户的会话都已结束,系统清除同步标志InSynch为0,至此本次数据同步结束。
在本发明上述方法步骤中,在指针互指前产生的用户会话所访问的是存储同步前信息的数据区(即同步前的主用数据区);在指针互置后,这些用户会话访问的数据区虽然成为备用数据区,但其中的数据并没有任何的改变,故不会影响这些用户会话的访问。同时,在指针互置后,新产生的用户会话可立即访问到更新后的数据区(即数据同步后的主用数据区)。
由此,本发明方法在同步开始后允许新的用户访问系统,不会造成同步过程中的业务停用;在同步开始前访问系统的用户会话不会因为数据不一致而引起访问中断;由于采用同步标志进行保护,即当有用户在访问备用数据区时不允许执行数据同步操作,可保证数据的一致性和安全性;同时由于在同步过程中没有用户访问备用数据区,故可采用灵活方法将后台的数据写入到备用数据区中。
本发明方法可广泛地适用于在数据同步过程中需要保持用户访问不被中断的应用场合。
综上,本发明所论述的利用主备用数据区实现不中断访问的数据同步方法,一方面在有用户访问系统的情况下也可以同步数据,保证了系统信息更新的及时性,另一方面同步过程中不会中断已有的用户访问,提高了系统运行的稳定性。
应当理解的是,上述针对各具体步骤的举例说明较为详细和具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
Claims (7)
1.一种采用主备用数据区实现不中断业务的数据同步方法,用于具有客户端和服务器端的通信应用系统,其特征在于,包括以下步骤:
A、在服务器端预先设置两个结构相同的数据区交替作为主、备用数据区;
B、在数据同步时只向所述备用数据区写入新数据,而客户端用户仍访问主用数据区中的数据;
C、当新数据写入完成后切换数据区的主备用状态。
2.根据权利要求1所述的方法,其特征在于,所述步骤A还包括:
A1、在每个数据区设置一个访问计数器,记录每个数据区的在线用户访问量。
3.根据权利要求2所述的方法,其特征在于,所述步骤A还包括:
A2、创建主、备用数据区指针,分别记录主备用数据区的位置。
4.根据权利要求3所述的方法,其特征在于,所述步骤B还包括:
B1、系统设置主备用数据库的同步标志;
B2、系统将后台最新的数据写入到备用数据区指针所指向的数据区,同时用户仍访问系统中主用数据区指针所指向的数据区;
B3、在最新数据写入到所述备用数据区完成后,系统将主、备用数据区指针进行互相赋值,即切换两个数据区的主、备用身份;
B4、在主备用数据区切换后,新的用户会话访问存储新信息的主用数据区;
B5、当备用数据区的访问计数器为0时,系统清除同步标志。
5.根据权利要求4所述的方法,其特征在于,在所述同步标志显示本次数据同步结束前,不执行下一次的数据同步。
6.根据权利要求2所述的方法,其特征在于,所述访问计数器的操作过程包括:
在每个用户会话开始时,将主用数据区指针的值保存到该会话空间中,并将该指针所指数据区的访问计数器加1;在后续的会话中,用户一直访问该其会话空间中保存的指针所指向的数据区,直至每一个用户会话结束,系统将该用户会话所访问的数据区对应的访问计数器减1。
7.根据权利要求2所述的方法,其特征在于,所述系统在初始化时执行以下步骤:
将主、备用数据区指针分别指向不同的所述两个结构相同的数据区;
将两个数据区的访问计数器均置为0;
将用户访问所需的信息写入到主用数据区指针所指向的数据区中。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA2006101411410A CN101162988A (zh) | 2006-10-11 | 2006-10-11 | 一种采用主备用数据区实现不中断业务的数据同步方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA2006101411410A CN101162988A (zh) | 2006-10-11 | 2006-10-11 | 一种采用主备用数据区实现不中断业务的数据同步方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN101162988A true CN101162988A (zh) | 2008-04-16 |
Family
ID=39297828
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNA2006101411410A Pending CN101162988A (zh) | 2006-10-11 | 2006-10-11 | 一种采用主备用数据区实现不中断业务的数据同步方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN101162988A (zh) |
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102063601A (zh) * | 2009-11-12 | 2011-05-18 | 中兴通讯股份有限公司 | 射频识别系统、阅读器和射频识别方法 |
| CN102377820A (zh) * | 2011-10-17 | 2012-03-14 | 苏州阔地网络科技有限公司 | 一种用户会话同步设备及方法 |
| CN102447578A (zh) * | 2011-11-23 | 2012-05-09 | 瑞斯康达科技发展股份有限公司 | 一种备份方法以及设备 |
| CN102541987A (zh) * | 2010-10-20 | 2012-07-04 | 微软公司 | 升级期间的在线数据库可用性 |
| CN103124276A (zh) * | 2011-11-18 | 2013-05-29 | 中国移动通信集团公司 | 一种扩展通信终端存储空间的方法及通信终端 |
| CN103164384A (zh) * | 2011-12-15 | 2013-06-19 | 中国银联股份有限公司 | 多机系统共享内存的同步实现方法及其系统 |
| US8751656B2 (en) | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
| US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
| US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
| US9015177B2 (en) | 2010-10-20 | 2015-04-21 | Microsoft Technology Licensing, Llc | Dynamically splitting multi-tenant databases |
| US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
| US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
| CN108234798A (zh) * | 2016-12-21 | 2018-06-29 | 乐视汽车(北京)有限公司 | 图像传输控制方法及装置 |
| CN111563010A (zh) * | 2020-04-16 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种基于双机冗余系统的数据同步方法、系统及存储介质 |
-
2006
- 2006-10-11 CN CNA2006101411410A patent/CN101162988A/zh active Pending
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102063601B (zh) * | 2009-11-12 | 2015-04-01 | 中兴通讯股份有限公司 | 射频识别系统、阅读器和射频识别方法 |
| CN102063601A (zh) * | 2009-11-12 | 2011-05-18 | 中兴通讯股份有限公司 | 射频识别系统、阅读器和射频识别方法 |
| US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
| CN102541987A (zh) * | 2010-10-20 | 2012-07-04 | 微软公司 | 升级期间的在线数据库可用性 |
| US9043370B2 (en) | 2010-10-20 | 2015-05-26 | Microsoft Technology Licensing, Llc | Online database availability during upgrade |
| US9015177B2 (en) | 2010-10-20 | 2015-04-21 | Microsoft Technology Licensing, Llc | Dynamically splitting multi-tenant databases |
| US8751656B2 (en) | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
| US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
| US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
| US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
| US10467315B2 (en) | 2010-12-09 | 2019-11-05 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
| CN102377820A (zh) * | 2011-10-17 | 2012-03-14 | 苏州阔地网络科技有限公司 | 一种用户会话同步设备及方法 |
| CN103124276A (zh) * | 2011-11-18 | 2013-05-29 | 中国移动通信集团公司 | 一种扩展通信终端存储空间的方法及通信终端 |
| CN103124276B (zh) * | 2011-11-18 | 2016-03-30 | 中国移动通信集团公司 | 一种扩展通信终端存储空间的方法及通信终端 |
| CN102447578A (zh) * | 2011-11-23 | 2012-05-09 | 瑞斯康达科技发展股份有限公司 | 一种备份方法以及设备 |
| CN103164384A (zh) * | 2011-12-15 | 2013-06-19 | 中国银联股份有限公司 | 多机系统共享内存的同步实现方法及其系统 |
| CN103164384B (zh) * | 2011-12-15 | 2016-05-18 | 中国银联股份有限公司 | 多机系统共享内存的同步实现方法及其系统 |
| CN108234798A (zh) * | 2016-12-21 | 2018-06-29 | 乐视汽车(北京)有限公司 | 图像传输控制方法及装置 |
| CN111563010A (zh) * | 2020-04-16 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种基于双机冗余系统的数据同步方法、系统及存储介质 |
| CN111563010B (zh) * | 2020-04-16 | 2023-07-28 | 深圳震有科技股份有限公司 | 一种基于双机冗余系统的数据同步方法、系统及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2599969C2 (ru) | Способ и устройство для синхронизации данных | |
| CN101162988A (zh) | 一种采用主备用数据区实现不中断业务的数据同步方法 | |
| CN106301876B (zh) | 物理机升级方法、业务迁移方法及装置 | |
| CN109698757A (zh) | 切换主备设备、恢复用户数据的方法、服务器及网络设备 | |
| CN110727738B (zh) | 基于数据分片的全局路由系统、电子设备及存储介质 | |
| CN101257406B (zh) | 网元发现方法和系统 | |
| CN101471845A (zh) | 数据块副本数量调整方法及元数据服务器节点 | |
| CN103491192A (zh) | 一种分布式系统的Namenode切换方法和系统 | |
| CN107689879A (zh) | 虚拟网元的管理方法及装置 | |
| CN102546558B (zh) | 一种光网络单元中协议的切换方法及光网络单元 | |
| CN110569231B (zh) | 数据迁移方法、装置、设备和介质 | |
| CN103500129A (zh) | 一种备份对象的发送、备份方法、生产端、灾备端及系统 | |
| CN106712973A (zh) | 一种会话绑定的方法及系统 | |
| CN108900441B (zh) | 网络切换方法、第一电子设备及可读存储介质 | |
| CN109669642A (zh) | 存储系统的节点加入方法、系统、装置及可读存储介质 | |
| EP2421291A1 (en) | Terminal for device management and method for initiating management session thereof | |
| WO2010145312A1 (zh) | 用户信息的处理方法、服务器及终端 | |
| WO2011143851A1 (zh) | 数据库服务器操作控制系统、方法及设备 | |
| WO2016000303A1 (zh) | 一种资源分配方法、系统及计算机存储介质 | |
| CN102468978A (zh) | 业务配置方法及装置 | |
| CN112311904A (zh) | 更新域名记录的方法、装置、存储介质以及域名管理系统 | |
| CN106462421A (zh) | 电信设备以及用于更新电信设备中的软件的方法 | |
| WO2018014882A1 (zh) | 获取路由信息的方法及装置、路由寻址设备及系统 | |
| WO2022134697A1 (zh) | 一种接口数据的交互方法、分布式单元以及中心单元 | |
| CN114422280B (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 | ||
| C12 | Rejection of a patent application after its publication | ||
| RJ01 | Rejection of invention patent application after publication |
Open date: 20080416 |