分布式数据库扩容方法、分布式数据库系统及计算机可读存储介质技术方案

技术编号:27372477 阅读:35 留言:0更新日期:2021-02-19 13:58
本申请实施例公开了一种分布式数据库扩容方法、分布式数据库系统及计算机可读存储介质,其中所述方法包括:基于原有的第一数据分片扩容得到第二数据分片,基于原有的第一数据分片的数据为第二数据分片创建第二数据分片的主库和从库,在第二数据分片的主库和从库之间创建主从复制,在第一数据分片和第二数据分片之间创建异步复制;断开第一数据分片和第二数据分片之间的异步复制,并调整分布式数据库的路由配置信息,使中间件能分别与第一数据分片和第二数据分片通信连接。通过实施本申请,能解决现有分布式扩容方法中存在的影响应用服务的正常使用、回收扩容后原有的节点服务器及分布式数据库、数据一致性难以保证等问题。数据一致性难以保证等问题。数据一致性难以保证等问题。

【技术实现步骤摘要】
分布式数据库扩容方法、分布式数据库系统及计算机可读存储介质


[0001]本申请涉及通信
,尤其涉及一种分布式数据库扩容方法、分布式数据库系统及计算机可读存储介质。

技术介绍

[0002]现有分布式数据库扩容方法一般通过如图1-图3所示流程实现。具体地如图1中,分布式数据库中的数据分片通过数据传输工具(例如关系数据库MySQL原生复制)汇聚到新建的数据库中间件服务(简称为中间件)dble2,由dble2路由到各新建数据分片所在的节点服务器Node中。如图2,需客户端停下应用服务,完成增量数据的同步。如图3中,在完成数据同步后,需切换应用服务到新的数据库中间件dble2及新的分布式数据库上,以删除旧的数据库中间件及分布式数据库。
[0003]然而在实践中发现,首先现有分布式数据库扩容方案中需停下应用服务,导致应用服务有段时间不可用,停止时间取决于增量数据的大小及同步速度,通常为几分钟到几个小时。这样会影响应用服务的正常使用,影响用户体验。其次扩容期间需额外建立一套完整的数据库中间件及对应的后端节点服务器,扩容后原有的节点服务器及分布式数据库需回收,增加回收工作。再者,难以保证扩容前后分布式数据库中数据的一致性。因此亟需一种便捷地分布式数据库扩容方案。

技术实现思路

[0004]本申请实施例提供了一种分布式数据库扩容方法,能解决现有分布式扩容方法中存在的影响应用服务的正常使用、回收扩容后原有的节点服务器及分布式数据库、数据一致性难以保证等问题。
[0005]第一方面,提供了一种分布式数据库扩容方法,所述分布式数据库包括中间件及其通信连接的若干原有的第一数据分片,每个原有的第一数据分片部署在一个对应的节点服务器中,该分布式数据库扩容方法包括:基于原有的第一数据分片扩容得到第二数据分片,该第二数据分片位于扩容出的新的节点服务器上;基于原有的第一数据分片的数据为第二数据分片创建第二数据分片的主库和从库,并在第二数据分片的主库和从库之间创建主从复制,在所述第一数据分片和所述第二数据分片之间创建异步复制,以将第一数据分片中的待同步数据异步复制于所述第二数据分片中,断开所述第一数据分片和所述第二数据分片之间的异步复制,并调整所述分布式数据库的路由配置信息,使得中间件能分别与第一数据分片和第二数据分片通信连接,以实现第一数据分片和第二数据分片的分别访问。
[0006]在一些实施例中,所述为所述第二数据分片创建所述第二数据分片的主库和从库的步骤包括:在所述原有的第一数据分片所对应的节点服务器中,对所述原有的第一数据分片的数
据进行全备份;使用所述原有的第一数据分片的备份,为所述第二数据分片创建所述第二数据分片的主库;对所述第二数据分片的主库进行备份,并利用所述第二数据分片的主库的备份,为所述第二数据分片创建所述第二数据分片的从库,且进一步为所述第二数据分片的主库和从库建立半同步复制,作为所述第二数据分片的主库和从库之间的所述主从复制。
[0007]在一些实施例中,所述第一数据分片和所述第二数据分片之间创建异步复制的步骤包括:通过命令行在所述第一数据分片的从库和所述第二数据分片的主库之间创建异步复制,等待所述待同步数据在所述第一数据分片和所述第二数据分片之间的同步完成。
[0008]在一些实施例中,所述调整所述分布式数据库的路由配置信息后,所述待同步数据的访问路由从所述第一数据分片调整到所述第二数据分片上。
[0009]在一些实施例中,在将所述第一数据分片中的待同步数据异步复制于所述第二数据分片中之后,且在断开所述第一数据分片和所述第二数据分片之间的异步复制之前,先断开所述中间件与所述第一数据分片的连接,以停止对所述第一数据分片的写入;所述调整所述分布式数据库的路由配置信息的步骤包括:生成所述第二数据分片的路由配置信息;使用所述中间件的热加载功能,加载所述第二数据分片和所述第一数据分片的路由配置信息,以实现所述中间件能分别与所述第一数据分片和所述第二数据分片通信连接。
[0010]在一些实施例中,在实现所述中间件能分别与所述第一数据分片和所述第二数据分片通信连接之后,还包括:删除所述第一数据分片中的所述待同步数据,和/或,删除所述第二数据分片中留存于所述第一数据分片上的数据。
[0011]第二方面,提供了一种分布式数据库系统,包括中间件以及其通信连接的若干原有的第一数据分片,每个原有的第一数据分片部署在一个对应的节点服务器中,所述中间件可执行上述第一方面或第一方面的任意一种可选的实施方式中的方法。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该单元可以是软件和/或硬件。
[0012]第三方面,提供了一种中间件,该中间件包括:处理器以及和处理器相连的存储器;其中,该存储器包括计算机可读指令;该处理器用于执行该存储器中的计算机可读指令,从而使得该汽车执行上述第一方面或第一方面的任意一种可选的实施方式中的方案。
[0013]第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可选的实施方式中的方法。
[0014]第五方面,提供了一种芯片产品,执行上述第一方面或第一方面的任意一种可选的实施方式中的方法。
[0015]第六方面,提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可选的实施方式中的方法。
附图说明
[0016]图1-图3是现有技术中提供的几种分布式数据库扩容方法涉及的操作示意图。
[0017]图4是本申请实施例提供的一种分布式数据库扩容方法的流程示意图。
[0018]图5-图12是本申请实施例提供的几种分布式数据库扩容方法涉及的操作示意图。
[0019]图13是本申请实施例提供的一种分布式数据库系统的结构示意图。
[0020]图14是本申请实施例提供的一种中间件的结构示意图。
[0021]图15是本申请实施例提供的另一种中间件的结构示意图。
具体实施方式
[0022]下面结合附图对本申请具体实施例作进一步的详细描述。
[0023]请参见图4,图4是本申请实施例提供的一种分布式数据库扩容方法的流程示意图。该分布式数据库包括中间件及与中间件通信的若干原有的第一数据分片,每个第一数据分片对应部署在一个节点服务器中,如图4所示的分布式数据库扩容方法包括:S101、基于原有的第一数据分片扩容得到第二数据分片,该第二数据分片位于扩容出的新的节点服务器上。
[0024]本申请中间件基于第一数据分片(例如数据分片A)扩张出新的第二数据分片(例如数据分片B)。该数据分片B和数据分片A对应部署于不同的节点服务器上。
[0025]S102、基于原有的第一数据分片的数据,为第二数据分片创建第二数据分片的主库和从库,并在第二数据分片的主库和从库之间创建主从复制。
[0026本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库扩容方法,其特征在于,所述分布式数据库包括中间件及其通信连接的若干原有的第一数据分片,每个所述原有的第一数据分片部署在一个对应的节点服务器中,所述分布式数据库扩容方法包括:基于所述原有的第一数据分片扩容得到第二数据分片,所述第二数据分片位于扩容出的新的节点服务器上;基于所述原有的第一数据分片的数据,为所述第二数据分片创建所述第二数据分片的主库和从库,并在所述第二数据分片的主库和从库之间创建主从复制,在所述第一数据分片和所述第二数据分片之间创建异步复制,以将所述第一数据分片中的待同步数据异步复制于所述第二数据分片中;断开所述第一数据分片和所述第二数据分片之间的异步复制,并调整所述分布式数据库的路由配置信息,使得所述中间件能分别与所述第一数据分片和所述第二数据分片通信连接,以实现所述第一数据分片和所述第二数据分片的分别访问。2.根据权利要求1所述的分布式数据库扩容方法,其特征在于,所述为所述第二数据分片创建所述第二数据分片的主库和从库的步骤包括:在所述原有的第一数据分片所对应的节点服务器中,对所述原有的第一数据分片的数据进行全备份;使用所述原有的第一数据分片的备份,为所述第二数据分片创建所述第二数据分片的主库;对所述第二数据分片的主库进行备份,并利用所述第二数据分片的主库的备份,为所述第二数据分片创建所述第二数据分片的从库,且进一步为所述第二数据分片的主库和从库建立半同步复制,作为所述第二数据分片的主库和从库之间的所述主从复制。3.根据权利要求2所述的分布式数据库扩容方法,其特征在于,所述第一数据分片和所述第二数据分片之间创建异步复制的步骤包括:通过命令行在所述第一数据分片的从库和所述第二数据分片的主库之间创建异步复制,等待所述待同步数据在所述第一数据分片和所述第二数据分片之间的同步完成。4.根据权利要求1所述的分布式数据库扩容方法,其特征在于,调整所述分布式数据库的路由配置信息后,所述待同步数据的访问路由从所述第一数据分片调整到所述第二数据分片上。5.根据权利要求1所述的分布式数据库扩容方法,其特征在于,在将所述第一数据分片中的待同步数据异步复制于所述第二数据分片中之后,且在断开所述第一数据分片和所述第二数据分片之间的异步复制之前,先断开所述中间件与所述第一数据分片的连接,以停止对所述第一数据分片的写入;所述调整所述分布式数据库的路由配置信息的步骤包括:生成所述第二数据分片的路由配置信息;使用所述中间件的热加载功能,加载所述第二数据分片和所述第一数据分片的路由配置信息,以实现所述中间件能分别与所述第一数据分片和所述第二数据分片通信连接。6.根据权利要求1-5中任一项所述的分布式数据库扩容方法,其特征在于,在实现所述中间件能分别与所述第一数据分片和所述第二数据分片通信连接之后,还包括:删除所述第一数据分片中的所述待同步数据,和/或,删除所述第二数据分片中留存于所述第一数据分片上的数据。
7.一种分布式数据库系统,包括中间件以及其通信连接的若干原有的第一数据分片,每个所述...

【专利技术属性】
技术研发人员:阎虎青黄炎李恒张沈波梁广涛
申请(专利权)人:上海爱可生信息技术股份有限公司
类型:发明
国别省市:

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

1