一种高复用可扩展的数据及文件同步的方法技术

技术编号:34194698 阅读:12 留言:0更新日期:2022-07-17 16:18
一种高复用可扩展的数据及文件同步的方法,以服务器或PC机为载体,步骤如下:发布同步信息,将需要同步的数据信息进行发布,每个服务器作为同步源对数据进行发布;获取同步信息,从其他服务器上获取同步信息;删除同步信息,周期查询本地数据库的数据同步发布表的呼叫信息是否已被其他服务器获取完毕,如果获取完毕,则删除数据同步信息记录,如果没有,则等待下一个周期进行查询;通过以上三个步骤,每个服务器都在发布信息,同时又从其他服务器获取信息,通过将数据库作为同步媒介,为其他软件及应用提供数据及文件同步。本发明专利技术多台服务器之间互为同步源,可实现数台以上服务器之间的相互同步,实现多台服务器之间的文件同步和数据库同步。数据库同步。数据库同步。

【技术实现步骤摘要】
一种高复用可扩展的数据及文件同步的方法


[0001]本专利技术涉及多台服务器的数据库及文件同步
,特别涉及一种高复用可扩展的数据及文件同步的方法。

技术介绍

[0002]计算机系统中传统的数据同步方法,主要通过数据库软件自带的同步机制。例如SQL Server,采用发布

订阅方法实现数据库的同步,是由主服务器进行发布消息,备份服务器进行订阅,当主服务器数据发生变更时,就会发布消息,备服务器读取消息进行同步更新,中间过程延迟比较短。
[0003]这种方法存在的问题有:(1)当需要同步的数据量巨大时,这种数据同步方法会造成服务器的卡顿,影响服务器上各种程序和服务的正常运行。
[0004](2)发布数据库的大量更新或者大量插入,可能会出现报错,或者订阅服务器的数据不一致。
[0005](3)当需要同步的设备增多,新增的设备和原同步系统中的设备都需要增加发布订阅事务,部署繁琐。
[0006](4)扩展性不佳,特别是当数据同步和其他业务相关联时,例如业务需求要求数据同步和文件同步相关联,而数据库的发布订阅方法无法和文件同步相关联。
[0007]以上是传统的数据库同步方法,而传统的文件同步方法,一般采用rsync或者同步盘之类的工具,如果数据量较小,或者对时效性要求没有那么高,基本可以满足需求。但是当数据量很大时,这些传统同步工具的速度、可靠性、稳定性和时效性不一定能够满足业务的需求。
[0008]以专利《一种数据同步方法、系统和存储介质》为例,公开号CN110377602A,就是一种传统的数据同步方法,它同样以数据库为媒介,监听到主数据库的同步数据发送事件操作时,触发生成触发信息,以及将触发信息发送至对应的数据库表中。这种数据同步方法适用于简单的数据同步场景,是以主服务器为数据源,扩展性和高可用性不佳,在主服务器出现故障时,同步流程停滞。
[0009]专利《一种分布式数据库数据同步方法》,公开号CN113918656B,以中央服务器为同步中心,接收和发布同步信息,这种同步方法要求对中央服务器的稳定性和高可用性要求较高,且对大量的数据同步需求没有明确的处理方法,在异常情况下会造成服务器的卡顿。

技术实现思路

[0010]鉴于现有技术存在的同步卡顿、多台服务器同步步骤繁琐、扩展性不佳的问题,本专利技术提供了一种高复用可扩展的数据及文件同步的方法,本方法中多个服务器可互为数据源,当主服务器出现故障时,其他服务器接管业务,继续发布同步信息,解决了传统数据库
同步和文件同步上的缺陷,并实现了数据库同步和文件同步的相关联的目的。
[0011]本专利技术采用的技术方案是:一种高复用可扩展的数据及文件同步的方法,以服务器或PC机设备为载体,操作系统为windows或linux,实现多台设备之间数据及文件的同步,具体步骤如下:第一步,发布同步信息;将需要同步的数据信息,包括时间、数据内容,进行发布,每个服务器作为同步源对数据进行发布,发布的方法是将数据信息写入数据库表中,数据库类型支持关系型数据库、非关系型数据库和键值数据库;第二步,获取同步信息;从其他服务器上获取同步信息,周期查询其他服务器上是否有同步数据发布,如果有,则进行获取,更新到本地数据库中,如果没有,则等待下一个周期进行查询;第三步,删除同步信息;发布完需要同步的数据信息后,周期查询本地数据库的数据同步发布表的数据内容是否已被其他服务器获取完毕,如果获取完毕,则删除数据同步信息记录,如果没有,则等待下一个周期进行查询;通过以上三个步骤,每个服务器既能够作为同步源发布信息,同时又从其他服务器获取信息,每个服务器发布的同步信息被获取后删除同步信息,通过将数据库作为同步媒介,为其他服务器提供数据及文件的同步。
[0012]第一步中所述的数据内容为,在应用于不同的系统时,数据内容根据系统需求进行自定义,应用于录音系统时,数据内容包括录音发起方、录音接收方、录音号码、录音时长和录音保存路径;应用于网管系统时,数据内容包括告警类型、告警等级、告警源、告警内容。
[0013]第一步中所述的将数据信息写入数据库表的方法如下:根据数据库类型不同,使用的句式不同;非关系型数据库MySQL,使用的句式为:INSERT INTO 表名 (字段1,字段2,...字段n) VALUES (值1,值2,...值n);关系型数据库SQLServer,使用的句式为:Update表名set列名 = 值;键值数据库MongoDB,使用的句式为:db.集合名.insertOne({键名:值})。
[0014]第二步中所述的周期查询其他服务器上是否有同步数据发布的方法如下查询的方法根据数据库类型的不同,使用的句式不同:非关系型数据库MySQL,使用的句式为:select distinct * from '表名' where '限制条件'group by '分组依据' having '过滤条件' order bylimit '展示条数';关系型数据库SQLServer,使用的句式为:select * from 表名 where 列名='值';键值数据库MongoDB,使用的句式为:db.集合名称.find({条件文档});
查询到数据以后,将数据插入本地服务器数据库中,查询到插入的过程中需要将查询的数据先放入本地缓存,再从本地缓存中取出数据插入到本地数据库中,为了更有效率、更加灵活地根据数据量调整同步速度,引进双级缓存机制及根据需要同步的数据量的大小来更改同步速度,来实现灵活的同步过程,获取完数据之后,通知文件同步模块,根据数据的值来进行文件的同步,使用FTP协议从同步源来获取文件。
[0015]第三步中所述的删除数据同步信息记录的方法如下:由于数据库类型不同,操作语句不同:非关系型数据库MySQL,使用的句式为;DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]关系型数据库SQLServer,使用的句式为:delete* from 表名 where 列名='值';键值数据库MongoDB,使用的句式为:db.集合名称.remove({列名: 值});使用删除句式,将同步信息从数据库表中删除。
[0016]所述的引进双级缓存机制的方法为,根据需要同步的数据量的大小来更改同步速度,来实现灵活的同步过程为:获取数据同步信息后,放入1级缓存,再将数据从1级缓存放入2级缓存,从2级缓存区获取数据同步信息,写入数据库中,写入成功之后,将该数据同步信息从1级缓存区和2级缓存区中删除,采用双级缓存机制,在需要同步的数据量过大时,同步速度可控,当查询到需要同步的数据量超过阈值时,调节查询获取数据同步的周期。
[0017]本专利技术的有益效果是:本专利技术实现了数据和文件同步的相关联,解决了传统数据同步和文件同步存在的同步卡顿、多台服务器同步步骤繁琐、扩展性不佳的问题,同步速度可控,稳定,易扩展,适用于多个需要数据和文件同步的场景,具有高复用,且本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高复用可扩展的数据及文件同步的方法,其特征在于:以服务器或PC机设备为载体,操作系统为windows或linux,实现多台设备之间数据及文件的同步,具体步骤如下:第一步,发布同步信息;将需要同步的数据信息,包括时间、数据内容,进行发布,每个服务器作为同步源对数据进行发布,发布的方法是将数据信息写入数据库表中,数据库类型支持关系型数据库、非关系型数据库和键值数据库;第二步,获取同步信息;从其他服务器上获取同步信息,周期查询其他服务器上是否有同步数据发布,如果有,则进行获取,更新到本地数据库中,如果没有,则等待下一个周期进行查询;第三步,删除同步信息;发布完需要同步的数据信息后,周期查询本地数据库的数据同步发布表的数据内容是否已被其他服务器获取完毕,如果获取完毕,则删除数据同步信息记录,如果没有,则等待下一个周期进行查询;通过以上三个步骤,每个服务器既能够作为同步源发布信息,同时又从其他服务器获取信息,每个服务器发布的同步信息被获取后删除同步信息,通过将数据库作为同步媒介,为其他服务器提供数据及文件的同步。2.根据权利要求1所述的一种高复用可扩展的数据及文件同步的方法,其特征在于:第一步中所述的数据内容为,在应用于不同的系统时,数据内容根据系统需求进行自定义,应用于录音系统时,数据内容包括录音发起方、录音接收方、录音号码、录音时长和录音保存路径;应用于网管系统时,数据内容包括告警类型、告警等级、告警源、告警内容。3.根据权利要求1所述的一种高复用可扩展的数据及文件同步的方法,其特征在于:第一步中所述的将数据信息写入数据库表的方法如下:根据数据库类型不同,使用的句式不同;非关系型数据库MySQL,使用的句式为:INSERT INTO 表名 (字段1,字段2,...字段n) VALUES (值1,值2,...值n);关系型数据库SQLServer,使用的句式为:Update表名set列名 = 值;键值数据库MongoDB,使用的句式为:db.集合名.insertOne({键名:值})。4.根据权利要求1所述的一种高复用可扩展的数据及文件同步的方法,其特征在于:第二步中所述的周期查询其他服务器上是否有同步数据发布的方法如下查询的方法根据...

【专利技术属性】
技术研发人员:郑敏敏刘佳喜赵蕊陈冠宇薛超王智超
申请(专利权)人:天津七一二移动通信有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1