一种数据网络终端间的数据同步方法

文档序号:7958745阅读:224来源:国知局
专利名称:一种数据网络终端间的数据同步方法
技术领域
本发明涉及一种数据同步方法,特别涉及一种数据通信网络终端间的数据同步方法。
背景技术
在通信设备的网络管理中,由于网管终端常常不是一个,地理分布也不在一个地方,所以存在网管配置数据和历史数据的同步问题,目前这个问题一般是通过DCN(Data Communication Network,数据通信网)进行数据传输来达到数据同步的目的。由于网管数据通常记录在数据库中,所以目前的方法是直接使用SQL的“Select”语句从远端数据库中查询希望得到的数据,经过网络传输到达本地,然后使用SQL的“Insert”语句插入到本地数据库中。图1是数据在数据库之间直接同步的示意图,这种方法如图所示,数据库A1中的表A11通过DCN网络直接与数据库B2中的表B22进行同步。
通过网络直接从远端数据库中读写数据的操作比较慢,尤其是在对大数据量数据表操作时速度慢表现更为突出。例如如果有两个需要同步的两个数据库,需要被同步的表如果大小约4G,每次同步2M的数据,网络采用2M的专线,那么一次同步花费的时间将在6个小时以上。同时,更为严重的是,在数据同步的过程中,由于被同步的双方数据库表都被数据库锁锁住,其他所有终端对被同步的双方表的操作将被拒绝,因此严重影响了网管系统的可用性。

发明内容
本发明所解决的技术问题在于提供了一种数据网络终端间的数据同步方法,以达到克服现有技术中,在数据库表数据通过网络同步时,造成表锁定时间长,从而影响网管系统的可用性的问题。
为解决上述技术问题,本发明提供了一种数据网络终端间的数据同步方法,用于实现远端数据库与本地数据库之间的数据同步,本方法包括如下步骤(1)在本地数据网络终端中为本地数据库创建一个本地输出缓存,在远端数据网络终端中为远端数据库创建一个远端输入缓存;(2)数据同步时,将本地数据库中的待同步数据读取至所述本地输出缓存;(3)从本地输出缓存读取出待同步数据,并经由网络传输至所述远端输入缓存中,并可以进一步删除本地输出缓存中的待同步数据;(4)从远端输入缓存中读取出所述待同步数据,并写入所述远端数据库中,并可以进一步删除远端输入缓存中的待同步数据。
所述步骤(1)可以进一步包括在本地数据网络终端中为本地数据库创建一个本地输入缓存,在远端数据网络终端中为远端数据库创建一个远端输出缓存;所述步骤(2)可以进一步包括将远端数据库中的待同步数据读取至所述远端输出缓存;所述步骤(3)可以进一步包括从远端输出缓存读取出待同步数据,并经由网络传输至所述本地输入缓存中,并可以进一步删除远端输出缓存中的待同步数据;所述步骤(4)可以进一步包括从本地输入缓存中读取出所述待同步数据,并写入所述本地数据库中,并可以进一步删除本地输入缓存中的待同步数据。
使用本发明后,由于被同步的数据所在的原始表的操作,全部是本地数据库的操作,不经过网络传输,所以耗时很短,有效的防止了原始表被锁定而影响表的可用性;同时缓存中的数据仅仅是被同步数据,数据量很小,有效的避免了大数据量表间的数据直接同步,从而加快了同步的速度。


图1是数据在数据库之间直接同步的示意图;图2是本发明实施例中所述数据库间同步数据布局示意图;图3是本发明实施例中所述数据库间同步数据传输时序流程示意图;图4是本发明实施例中所述网管系统网络结构示意图;图5是本发明实施例中所述采用数据库表辅助数据同步的数据布局示意图;图6是本发明实施例中所述采用数据库表辅助数据同步的数据同步实施流程示意图。
具体实施例方式
通过网络直接从远端数据库中读写数据的操作比较慢,尤其是在对大数据量数据表操作时速度慢表现更为突出。例如如果有两个需要同步的两个数据库,需要被同步的表数据如果大小约4G,每次同步2M的数据,网络采用2M的专线,那么一次同步花费的时间将在6个小时以上。但是使用2M的专线来传输2M的数据则一般仅仅需要8秒钟左右,因此我们判断同步的瓶颈在终端的数据库数据的读取上。于是本发明实施例提出了一种添加同步缓存来辅助数据同步传输的方法来提高网管系统的可用性。
实施例中,图2是本发明实施例中所述数据库间同步数据布局示意图;首先为数据库A1的待同步表A11增加了输出缓存A110与输入缓存A111,为数据库B2的待同步表B22增加了输出缓存B220与输入缓存A221,各部分之间的连接关系如图所示,图中箭头方向表示数据流向。
缓存可以是数据库表、内存、交换文件等。
图3是本发明实施例中所述数据库间同步数据传输时序流程示意图,如图所示。实施例中添加同步缓存来辅助同步的方法,从表A11到表B22的数据同步流程如下步骤301从数据表A11中读取待同步数据写入输出缓存A110中;
步骤302从输出缓存A110中读取全部数据后,经过网络传输,再写入输入缓存B221中;步骤303从输入缓存B221中读取全部数据后,写入数据表B22中;同时删除输出缓存A110中全部数据;步骤304删除输入缓存B221中全部数据;从表B22到表A11的数据同步过程与上述步骤除方向相反外其余相同。
图4是本发明实施例的网管系统网络结构示意图,如图所示,网络中包括服务器401及其操作终端403、服务器402及其操作终端404、网管系统控制机405。
图5是本发明实施例中所述采用数据库表辅助数据同步的数据布局示意图,如图所示,数据库A和数据库B分别位于图4中DCN两端的服务器401和服务器402上,设需同步传输的表A和表B是网管的配置数据或历史数据。当网管网络使用主副站备份系统,主站和副站间要求历史15分钟数据同步时,配置如下数据库系统Microsoft SQL Server 2000;数据表容量3个月,约4G字节;同步网络2M专线;同步要求每小时双向同步一次,每次数据大约2M。
当使用如图1所示的原始的数据表间直接数据同步的方法时,发现随着表中数据的大小而逐渐减慢,到后期每次同步需要6个小时,按1个小时同步一次的需求不可能完成。同时同步过程中表被锁定,网管界面上无法查询历史15分钟性能。
图2是本发明实施例中所述数据库间同步数据布局示意图,首先按图2所示,对数据布局为数据库A1的待同步表A11增加了输出缓存A110与输入缓存A111,数据库B2的待同步表B22增加了输出缓存B220与输入缓存A221,各部分之间的连接关系如图所示,图中箭头方向表示数据流向。缓存可以是数据库表,内存,交换文件等。
图5是本发明实施例中采用数据库表辅助数据同步的数据布局示意图,图5中,我们在网管系统中采用数据库表这一实施方式来说明,用以表现辅助同步数据的实施。我们使用4个辅助表A0、A1、B0、B1分别代替图2缓存中的A110、A111、B220、B221,各部分之间的连接关系如图5所示,图中箭头方向表示数据流向。辅助表是使用同表A或表B相同结构创建的空表。而同步数据传输的流程同图3实施例所示。
图6是本发明实施例中所述采用数据库表辅助数据同步的数据同步实施流程示意图,本实施例是在采用图5所示的使用数据库表作为缓存的基础上的同步传输数据的。如图所示,实施例实施流程为步骤601从数据表A中读取待同步数据写入辅助表A0中;步骤602从辅助表A0中读取全部数据后,经过网络传输,再写入辅助表B1中;步骤603从辅助表B1中读取全部数据后,写入数据表B中,删除辅助表A0中全部数据;步骤604删除辅助表B1中全部数据。
从数据表B到表A的数据同步过程与上述步骤除方向相反外其余相同。
实施例中我们应用定时执行任务来确保4个阶段的顺利进行,即分配阶段1、阶段2、阶段3、阶段4,它们的时间分别是1分钟、10分钟、1分钟、1分钟;从中我们可以看出,1个小时内只有13分钟用于同步。而且阶段2的时间大约1分钟即可完成,总耗时有进一步缩短的空间。这样网管不再会出现无法查询历史15分钟性能现象了。
本发明实施例中,由于被同步的数据所在的原始表A和表B的操作全部是本地数据库的操作,不经过网络传输,所以耗时很短,有效的防止了原始表被锁定而影响表的可用性;同时缓存中的数据仅仅是被同步数据,数据量很小,有效的避免了大数据量表间的数据直接同步,从而加快了同步的速度。
权利要求
1.一种数据网络终端间的数据同步方法,用于实现远端数据库与本地数据库之间的数据同步,其特征在于,包括如下步骤(1)在本地数据网络终端中为本地数据库创建一个本地输出缓存,在远端数据网络终端中为远端数据库创建一个远端输入缓存;(2)数据同步时,将本地数据库中的待同步数据读取至所述本地输出缓存;(3)从本地输出缓存读取出待同步数据,并经由网络传输至所述远端输入缓存中;(4)从远端输入缓存中读取出所述待同步数据,并写入所述远端数据库中。
2.如权利要求1所述的方法,其特征在于,所述步骤(3)中,在将待同步数据传输至远端输入缓存后,进一步包括删除本地输出缓存中的待同步数据。
3.如权利要求1所述的方法,其特征在于,所述步骤(4)中,在将待同步数据写入远端数据库后,进一步包括删除远端输入缓存中的待同步数据。
4.如权利要求1所述的方法,其特征在于,所述本地输出缓存、远端输入缓存,由数据终端的数据库表、数据终端内存或交换文件来实现。
5.如权利要求1所述的方法,其特征在于,所述步骤(1)进一步包括在本地数据网络终端中为本地数据库创建一个本地输入缓存,在远端数据网络终端中为远端数据库创建一个远端输出缓存;所述步骤(2)进一步包括将远端数据库中的待同步数据读取至所述远端输出缓存;所述步骤(3)进一步包括从远端输出缓存读取出待同步数据,并经由网络传输至所述本地输入缓存中;所述步骤(4)进一步包括从本地输入缓存中读取出所述待同步数据,并写入所述本地数据库中。
6.如权利要求5所述的方法,其特征在于,所述步骤(3)中,在将待同步数据传输至本地输入缓存后,进一步包括删除远端输出缓存中的待同步数据。
7.如权利要求5所述的方法,其特征在于,所述步骤(4)中,在将待同步数据写入本地数据库后,进一步包括删除本地输入缓存中的待同步数据。
8.如权利要求5所述的方法,其特征在于,所述本地输入缓存、远端输出缓存,由数据终端的数据库表、数据终端内存或交换文件来实现。
全文摘要
本发明公开了一种数据网络终端间的数据同步方法,包括(1)在本地数据网络终端中为本地数据库创建一个本地输出缓存,在远端数据网络终端中为远端数据库创建一个远端输入缓存;(2)数据同步时,将本地数据库中的待同步数据读取至所述本地输出缓存;(3)从本地输出缓存读取出待同步数据,并经由网络传输至所述远端输入缓存中,并可以进一步删除本地输出缓存中的待同步数据;(4)从远端输入缓存中读取出所述待同步数据,并写入所述远端数据库中,并可以进一步删除远端输入缓存中的待同步数据。使用本发明后,有效的防止了原始表被锁定而影响表的可用性,加快了同步的速度。
文档编号H04L12/24GK101051929SQ20061006673
公开日2007年10月10日 申请日期2006年4月5日 优先权日2006年4月5日
发明者袁虎 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1