一种数据系统的动态分库方法及其装置制造方法及图纸

技术编号:36114608 阅读:9 留言:0更新日期:2022-12-28 14:18
本发明专利技术提供一种数据系统的动态分库方法及其装置,包括根据事件溯源模式将老集群的数据同步至新集群,判断数据是否同步完成,若是,则向协调者发送数据同步完成消息,协调者根据数据同步完成消息向老集群发送分库命令,执行分库命令并更新老集群和新集群的配置,判断老集群和新集群是否完成分库,若是,则将结果分别反馈至协调者,本发明专利技术在对数据库进行分库,分担数据库压力的同时,能够减少由于数据库分库导致的系统停机时间较长,使得整个分库过程不会对业务系统造成影响,降低业务损失。降低业务损失。降低业务损失。

【技术实现步骤摘要】
一种数据系统的动态分库方法及其装置


[0001]本专利技术涉及信息
,尤其涉及一种数据系统的动态分库方法及其装置。

技术介绍

[0002]随着业务数据爆炸式的增长,单个数据库的承载性能已经无法满足需求,需要拆分多个数据库分担压力,然而现有的分库方法是先将业务进行暂停,避免有人操作系统造成影响,再进行系统数据库备份,防止操作失误后回滚所有操作,最后按照预定的逻辑将数据切分到各个机器上,并重启系统,但是,这种分库方法会使系统暂停较长时间,造成较多的业务损失。

技术实现思路

[0003]本专利技术旨在解决上述现有技术分库方法会使系统的停机时间较长,造成较多业务损失的问题,提供一种数据系统的动态分库方法及其装置。
[0004]本专利技术提供一种数据系统的动态分库方法,包括以下步骤:
[0005]根据事件溯源模式将老集群的数据同步至新集群;
[0006]判断所述数据是否同步完成;
[0007]若是,则向所述协调者发送数据同步完成消息,所述协调者根据所述数据同步完成消息向所述老集群发送分库命令;
[0008]执行所述分库命令并更新所述老集群和所述新集群的配置;
[0009]判断所述老集群和所述新集群是否完成分库;
[0010]若是,则将结果分别反馈至所述协调者。
[0011]进一步的,所述根据事件溯源模式将老集群的数据同步至新集群的步骤中,包括:
[0012]向所述新集群发送同步数据命令;
[0013]通过从老集群中获取快照文件,以得到时间戳。
[0014]进一步的,所述判断所述数据是否同步完成的步骤中,包括:
[0015]将所述时间戳与本地时间进行对比,以得到时间差;
[0016]当所述时间差在区间1s

9s内时,则判定所述数据同步完成。
[0017]进一步的,所述执行所述分库命令并更新所述老集群和所述新集群的配置的步骤中,包括:
[0018]将所述分库命令插入所述老集群的命令队列中;
[0019]通过共识算法将所述分库命令发送至第一自动机;
[0020]通过所述第一自动机执行所述分库命令,并得到第一输出程序和第二输出程序,其中,所述第一输出程序为不对非属类消息进行处理,所述第二输出程序为将分库完成消息发送至所述协调者;
[0021]将所述分库完成消息记录至本地数据库。
[0022]进一步的,所述将所述分库完成消息存储至本地数据库的步骤之后,包括:
[0023]判断所述老集群是否接收到所述非属类消息;
[0024]若是,则发送错误状态信息和重定向提示至用户端,以得到老集群位置。
[0025]进一步的,所述执行所述分库命令并更新所述新集群的配置的步骤中,包括:
[0026]通过第二自动机执行所述分库命令,并得到第一处理程序和第二处理程序,其中,所述第一处理程序为将所属类消息进行处理,并将非属类消息发送至所述用户端,所述第二处理程序为将分库完成消息发送至所述协调者;
[0027]对所述本地数据库进行更新。
[0028]进一步的,所述对所述本地数据库进行更新的步骤之后,包括:
[0029]判断所述新集群是否接收到所述非属类消息;
[0030]若是,则发送错误状态信息和重定向提示至所述用户端,以得到新集群位置。
[0031]进一步的,所述若是,则将结果反馈至所述协调者的步骤之后,还包括:
[0032]对所述分库命令进行分析以得到分库信息,其中,所述分库信息包括新库数据;
[0033]将所述分库信息发送至服务端,以得到新库位置。
[0034]本专利技术还提供一种数据系统的动态分库装置,包括:
[0035]数据同步模块,用于根据事件溯源模式将老集群的数据同步至新集群;
[0036]第一判断模块,用于判断所述数据是否同步完成;
[0037]第一传输模块,用于则向所述协调者发送数据同步完成消息,所述协调者根据所述数据同步完成消息向所述老集群发送分库命令;
[0038]执行模块,用于执行所述分库命令并更新所述老集群和所述新集群的配置;
[0039]第二判断模块,用于判断所述老集群和所述新集群是否完成分库;
[0040]第一反馈模块,用于若是,则将结果分别反馈至所述协调者。
[0041]本专利技术提供了一种数据系统的动态分库方法及其装置,具有以下有益效果:
[0042]能够在对数据库进行分库、分担数据库压力的同时,减少由于数据库分库导致的系统停机时间,使得整个分库过程不会对业务系统造成影响,降低业务损失。
附图说明
[0043]图1为本专利技术中一种数据系统的动态分库方法的方法步骤示意图;
[0044]图2为本专利技术中一种数据系统的动态分库装置的装置结构框图;
[0045]图3为本专利技术中一种数据系统的动态分库方法一实施例中分库前的步骤示意图;
[0046]图4为本专利技术中一种数据系统的动态分库方法一实施例中老集群分库过程示意图;
[0047]图5为本专利技术中一种数据系统的动态分库方法一实施例中新集群分库过程示意图。
[0048]标记说明:数据同步模块10,第一判断模块20,第一传输模块30,执行模块40,第二判断模块50,第一反馈模块60。
具体实施方式
[0049]应当理解,此处所描述的具体实施例仅仅用于解释本专利技术,并不用于限定本专利技术。
[0050]下面将结合本专利技术的实施例中的附图,对本专利技术的实施例中的技术方案进行清
楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0051]参考附图1,为本专利技术一实施例中的一种数据系统的动态分库方法,包括:
[0052]S1,根据事件溯源模式将老集群的数据同步至新集群;
[0053]S2,判断数据是否同步完成;
[0054]S3,若是,则向协调者发送数据同步完成消息,协调者根据数据同步完成消息向老集群发送分库命令;
[0055]S4,执行分库命令并更新老集群和新集群的配置;
[0056]S5,判断老集群和新集群是否完成分库;
[0057]S6,若是,则将结果分别反馈至协调者。
[0058]以上步骤中,在分库前,本专利技术包括三个节点,分别为老集群、新集群和协调者,通过事件溯源模式将老集群的数据同步至新集群,其中,事件溯源模式为将定义完成的事件按照发生的顺序进行记录,在一具体实施例中,按照事件发生的顺序将老集群的数据同步至新集群,再判断新集群中,数据是否同步完成,若同步完成,新集群便将数据同步完成消息发送至协调者,并通过协调者向老集群发送分库命令,即由协调者向老集群发送开始分库消息,在数据同步期间,协调者对新集群是否完成数据同步进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据系统的动态分库方法,其特征在于,包括以下步骤:根据事件溯源模式将老集群的数据同步至新集群;判断所述数据是否同步完成;若是,则向所述协调者发送数据同步完成消息,所述协调者根据所述数据同步完成消息向所述老集群发送分库命令;执行所述分库命令并更新所述老集群和所述新集群的配置;判断所述老集群和所述新集群是否完成分库;若是,则将结果分别反馈至所述协调者。2.根据权利要求1所述的数据系统的动态分库方法,其特征在于,所述根据事件溯源模式将老集群的数据同步至新集群的步骤中,包括:向所述新集群发送同步数据命令;通过从老集群中获取快照文件,以得到时间戳。3.根据权利要求2所述的数据系统的动态分库方法,其特征在于,所述判断所述数据是否同步完成的步骤中,包括:将所述时间戳与本地时间进行对比,以得到时间差;当所述时间差在区间1s

9s内时,则判定所述数据同步完成。4.根据权利要求1所述的数据系统的动态分库方法,其特征在于,所述执行所述分库命令并更新所述老集群和所述新集群的配置的步骤中,包括:将所述分库命令插入所述老集群的命令队列中;通过共识算法将所述分库命令发送至第一自动机;通过所述第一自动机执行所述分库命令,并得到第一输出程序和第二输出程序,其中,所述第一输出程序为不对非属类消息进行处理,所述第二输出程序为将分库完成消息发送至所述协调者;将所述分库完成消息存储至本地数据库。5.根据权利要求4所述的数据系统的动态分库方法,其特征在于,所述将所述分库完成消息存储至本地数据库的步骤之后,包括:判断所述老集群是否接...

【专利技术属性】
技术研发人员:蒋永鑫钟东杰肖灵聪
申请(专利权)人:深圳市星卡科技股份有限公司
类型:发明
国别省市:

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

1