数据同步方法和数据同步系统技术方案

技术编号:4263571 阅读:209 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据同步方法和数据同步系统。涉及内存数据库领域;解决了两台互为主备机的内存数据库同时工作带来的资源浪费和切换时产生的数据丢失的问题。所述数据同步方法包括:接收并缓存逻辑日志,将所述逻辑日志按序列号排序;判断所述逻辑日志是否正常;如果所述逻辑日志正常,将所述逻辑日志写入内存数据库中。本发明专利技术可应用于数据库的数据同步。

【技术实现步骤摘要】

本专利技术涉及内存数据库领域,尤其涉及一种数据同步方法和数据同步系统
技术介绍
对于企业用户来说,多种服务都是建立在数据库基础之上的,数据库的可靠性十分重要。为了提高内存数据库的可靠性,可以采用主备双机的方案,两台内存数据库同时运行,一台主机接收业务访问,另一台作为备机,实时的同步主机内存中的数据,当主机发生故障时,切换到备机,由备机继续提供服务。 在实现上述内存数据库以主备机模式工作的过程中,专利技术人发现现有技术中至少存在如下问题 1、两台内存数据库同时运行,但只有一台能进行业务服务,造成硬件资源的浪费; 2、主机中置有缓存区,存储着需要同步到备机的数据,当主机发生故障时,缓存区的数据丢失,导致切换到备机后,部分业务数据丢失;此外,主机发生故障切换到备机需要一定时间,由该内存数据库提供的业务会产生中断。
技术实现思路
为了解决现有技术中,两台互为主备机的内存数据库同时工作带来的资源浪费和切换时产生的数据丢失的问题,本专利技术提供一种数据同步的方法。 —种数据同步方法,包括 接收并缓存逻辑日志,将所述逻辑日志按序列号排序; 判断所述逻辑日志是否正常; 如果所述逻辑日志正常,将所述逻辑日志写入内存数据库中。 进一步地,所述判断所述逻辑日志是否正常具体为判断所述逻辑日志的序列号是否连贯,如果序列号丢失,则所述逻辑日志不正常;如果序列号连贯,则所述逻辑日志正常。 进一步地,所述判断所述逻辑日志是否正常的步骤之后还包括如果所述逻辑日志不正常,向分发服务器发送重发请求,请求重发丢失的逻辑日志。进一步地,所述数据同步方法还包括 删除缓存的逻辑日志; 向分发服务器发送同步成功消息。进一步地,所述数据同步方法还包括 在所述内存数据库发生故障并恢复后,从所述磁盘中读取所述备份文件; 根据所述备份文件重建所述内存数据库; 根据新接收到的逻辑日志的序列号和所述重建的内存数据库中逻辑日志的序列号,判断是否发生逻辑日志丢失; 如果发生逻辑日志丢失,向中心节点请求重新发送丢失的逻辑日志。 进一步地,所述数据同步方法还包括 当新的边缘节点加入时,拷贝其他边缘节点磁盘中的备份文件到该新的边缘节点的磁盘中; 根据所述备份文件创建该新的边缘节点的内存数据库; 根据新接收到的逻辑日志序列号和所述内存数据库中逻辑日志的序列号,判断是否发生逻辑日志丢失; 如果逻辑日志丢失,向中心节点请求重新发送丢失的逻辑日志。 本专利技术还提供一种数据同步方法。 —种数据同步的方法,包括 向至少一个边缘节点发送所述逻辑日志,并接收该边缘节点发送的应答消息,所述应答消息中携带有逻辑日志序列号和节点号; 在接收到全部边缘节点的应答消息后,删除缓存的所述逻辑日志。 进一步地,所述数据同步方法还包括 中心节点对所述逻辑日志进行分类,为同一类逻辑日志独立分配序列号; 所述中心节点根据分类,向至少两个分发服务器集群发送所述逻辑日志,所述分发服务器集群包括至少一个分发服务器; 分发服务器接收所述中心节点发送的所述逻辑日志,并缓存所述逻辑日志。 进一步地,所述数据同步方法还包括 在超时没有接收到边缘节点的答应消息时,向没有发送应答消息的边缘节点重发逻辑日志;或者, 接收边缘节点的重发请求,向所述边缘节点重新发送对应的逻辑日志,所述重发请求中携带有需要重发的逻辑日志序列号与边缘节点号。 进一步地,所述在接收到全部边缘节点的应答消息后,删除缓存的所述逻辑日志的步骤之后还包括向中心节点发送同步成功消息。 本专利技术还提供一种边缘节点。 —种边缘节点,包括 排序模块,用于接收并缓存逻辑日志,将所述逻辑日志按序列号排序; 判断模块,用于判断所述排序模块接收的逻辑日志是否正常; 日志写入模块,用于在所述逻辑日志正常时,将所述逻辑日志写入内存数据库中。 进一步地,所述边缘节点还包括 数据备份模块,用于将内存数据库中的逻辑日志周期性的备份到磁盘中; 数据库建立模块,用于当内存数据库故障重启后,根据所述磁盘中的备份文件重建所述内存数据库;或者有新加入的边缘节点时,为所述新加入的边缘节点新建内存数据库; 请求重发模块,用于在所述判断模块判断所述接收的逻辑日志不正常时,向分发服务器发送重发请求,请求重发丢失的逻辑日志;或者, 当重建内存数据库或新建内存数据库后,发生逻辑日志丢失时,向中心节点发送重发请求,请求重发丢失的逻辑日志。 本专利技术还提供一种分发服务器。 —种分发服务器,包括 日志发送模块,用于向至少一个边缘节点发送所述逻辑日志,并接收该边缘节点发送的应答消息,所述应答消息中携带有逻辑日志序列号和节点号; 日志清除模块,用于在接收到全部边缘节点的应答消息后,删除缓存的所述逻辑日志。进一步地,所述分发服务器还包括 日志缓存模块,用于接收中心节点发送的逻辑日志,并缓存所述逻辑日志; 超时重发模块,用于在超时没有接收到边缘节点的应答消息时,向没有发送应答消息的边缘节点重新发送所述逻辑日志; 应答重发模块,用于接收边缘节点的重发请求,向该边缘节点发送相应的逻辑日志。 本专利技术还提供一种同步系统。 —种数据同步系统,包括至少一个中心节点,至少一个分发服务器和至少一个边缘节点;其中,一个中心节点连接有至少两个分发服务器集群,所述分发服务器集群包括至少一个分发服务器;一个分发服务器连接有至少一个边缘节点; 所述中心节点,用于对逻辑日志进行分类,为同一类逻辑日志独立分配序列号;根据分类,向至少两个分发服务器集群发送所述逻辑日志,具体为向一个分发服务器集群发送一类逻辑日志;所述分发服务器集群包括至少一个分发服务器; 所述分发服务器,用于接收所述中心节点发送的逻辑日志,并缓存所述逻辑日志;向至少一个边缘节点发送所述逻辑日志,在接收到全部边缘节点发送的应答消息后,删除缓存的所述逻辑日志; 所述边缘节点,用于接收并缓存所述逻辑日志,将所述逻辑日志按序列号排序;判断所述逻辑日志是否正常;如果所述逻辑日志正常,将所述逻辑日志写入内存数据库中;将内存中的逻辑日志周期性的备份到磁盘中;在发生故障时,判断是否有逻辑日志丢失,并向中心数据库要求重发丢失的逻辑日志。 进一步地,所述边缘节点还用于当所述逻辑日志不正常时,向分发服务器发送重发请求,请求重发丢失的逻辑日志;将内存数据库中的逻辑日志周期性的备份到磁盘中;当重建内存数据库或新建内存数据库后,发生逻辑日志丢失时,向中心节点发送重发请求,请求重发丢失的逻辑日志;在发生故障时,判断是否有逻辑日志丢失,并向中心节点要求重发丢失的逻辑日志。 本专利技术提供的数据同步方法、分发服务器、边缘节点和数据同步系统,由中心节点根据业务类型对逻辑日志进行分类并分配序列号,将逻辑日志按分类分别发送到不到的分发服务器集群;再由分发服务器集群将逻辑日志发送到对应的边缘节点,并检测是否已将逻辑日志成功发送;边缘节点接收逻辑日志,并依照序列号对逻辑日志进行排序,从而检测是否有逻辑日志丢失,在逻辑日志正常时将逻辑日志写入内存数据库,在发生逻辑日志丢失时主动要求重发。解决了现有技术中,两台互为主备机的内存数据库同时工作带来的资源浪费和切换时产生的数据丢失的问题,提高了数据同步的可靠性。附图说明 图1为本专利技术的实施例提供的一种数据同步方法的流程 图2为本专利技术的又一实施例提供的一种数据同步方法的流程图; 本文档来自技高网...

【技术保护点】
一种数据同步方法,其特征在于,包括:接收并缓存逻辑日志,将所述逻辑日志按序列号排序;判断所述逻辑日志是否正常;如果所述逻辑日志正常,将所述逻辑日志写入内存数据库中。

【技术特征摘要】

【专利技术属性】
技术研发人员:周丹弟
申请(专利权)人:青岛海信传媒网络技术有限公司
类型:发明
国别省市:95[中国|青岛]

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

1