CN110489494B - 分布式数据库在线扩容方法及装置 - Google Patents
分布式数据库在线扩容方法及装置 Download PDFInfo
- Publication number
- CN110489494B CN110489494B CN201910795313.3A CN201910795313A CN110489494B CN 110489494 B CN110489494 B CN 110489494B CN 201910795313 A CN201910795313 A CN 201910795313A CN 110489494 B CN110489494 B CN 110489494B
- Authority
- CN
- China
- Prior art keywords
- data
- library
- standby
- main
- libraries
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种分布式数据库在线扩容方法及装置,通过第一备库中的一个与第二主库建立传输关系,进而不影响第一主库的业务访问,可以实现在线扩容,通过多个备库替换对应物理分片中不可用的主库或者备库,实现,进而可以实现自动高可用切换保证能力,尽最大能力地降低对在线业务的影响,缩短扩容所需时间。
Description
技术领域
本发明涉及数据库扩容技术领域,更具体的,涉及一种分布式数据库在线扩容方法及装置。
背景技术
随着业务的增长,应用的数据量不断累加,对于单机存储容量问题,需要采用分布式中间件实现应用分库分表,来提高数据库的扩展能力。常见的数据分片策略如一致性哈希分片算法,在数据拆分前就已经指定固定的分片数,一旦数据分片策略或分片数改变,需要对全量数据做重新拆分,这实施成本是巨大的。为降低重新拆分数据的概率,一般采用超量逻辑分片策略,即先评估数据增长模型,并评估未来几年后的数据总量,然后根据评估的数据量(不是当前数据量)来选择逻辑分片长度,一般分片数的选定为2的幂次方。一般情况下,在业务上线初期数据量不大,为了节省设备资源,根据当前设备资源需求来选择物理设备数量,一个物理分片(可以理解为一个传统数据库或一个物理服务器的单实例部署)上部署多个逻辑分片。这种分片策略带来的好处是:1、降低频繁重新拆分数据带来的实施成本;2、当单个物理分片的数据量过大导致物理资源达到瓶颈时,仅需要将单个物理分片上的部分逻辑分片迁移到新的物理分片,但数据在各个逻辑分片的分布不变,在一定时间内无需对全量数据进行重新分布。
当单个物理分片使用的如CPU、存储、IO等设备资源达到瓶颈时,就要考虑在线扩容问题,即增加物理设备,将原物理设备上的部分逻辑分片迁移到新的物理设备上,一般的扩容方法如下(下面以一个物理分片A部署两个逻辑分片1和2为例子进行简单说明):
1、创建新的物理分片B,将原物理分片A的全量数据迁移到另一个新的物理分片B上;
2、在原物理分片A和新物理分片B之间建立数据同步关系,保证在线业务数据同时落在这两个物理分片上,即原物理分片A和新物理分片B同时拥有逻辑分片1和2的数据,而且数据实时同步,保持数据一致;
3、断开业务流量,等原物理分片A和新物理分片B数据完全一致后,断开原物理分片A与新物理分片B之间的数据同步关系;
4、修改分布式中间件的路由规则并恢复业务流量,路由规则修改为原物理分片A仅更新逻辑分片1的数据,新物理分片B仅更新逻辑分片2的数据;
5、清理数据,清理后原物理分片A仅保留逻辑分片1的数据,新物理分片B仅保留逻辑分片2的数据,完成数据扩容。
在上述整个扩容过程中一般没有考虑服务器故障等导致的高可用保障,而实际使用的设备越来越多,也越来越依赖于廉价设备或者容器,因此,服务器故障导致的高可用问题不能忽视,一旦发生故障,上述扩容过程所耗费的时间往往比较长,同时也延长了扩容过程中业务所需要的停机恢复的时间。
发明内容
为了解决上述问题中的至少一个,本申请提供一种分布式数据库在线扩容方法,包括:
在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
将第二主库中的第一数据和第二数据同步至所述多个第二备库;
清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
在某些实施例中,还包括:
当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库。
在某些实施例中,还包括:
当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
在某些实施例中,还包括:
当与第二主库建立传输关系的第一备库不可用时,从其他第一备库中选取一个第一备库与所述第二主库建立传输关系。
在某些实施例中,所述将所述第一数据和所述第二数据传输至第二主库,包括:
通过异步传输将所述第一数据和所述第二数据传输至第二主库。
在某些实施例中,所述将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库,包括:
通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
在某些实施例中,所述将第二主库中的第一数据和第二数据同步至所述多个第二备库,包括:
通过网络流式备份后恢复方式,将第一数据和第二数据同步至第二备库。
在某些实施例中,所述第一数据和第二数据为压缩数据。
在某些实施例中,还包括:
当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
断开建立传输关系的第一备库与第二主库之间的连接。
本申请还提供一种分布式数据库在线扩容装置,包括:
备库设置模块,在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
数据第一同步模块,将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
数据传输模块,当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
数据第二同步模块,将第二主库中的第一数据和第二数据同步至所述多个第二备库;
清理模块,清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
在某些实施例中,还包括:
第一主库替代模块,当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库。
在某些实施例中,还包括:
第二主库替代模块,当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
在某些实施例中,还包括:
第一备库替代模块,当与第二主库建立传输关系的第一备库不可用时,从其他第一备库中选取一个第一备库与所述第二主库建立传输关系。
在某些实施例中,所述数据传输模块通过异步传输将所述第一数据和所述第二数据传输至第二主库。
在某些实施例中,所述数据第一同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
在某些实施例中,所述数据第二同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第二备库。
在某些实施例中,所述第一数据和第二数据为压缩数据。
在某些实施例中,还包括:
业务暂停模块,当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
连接断开模块,断开建立传输关系的第一备库与第二主库之间的连接。
本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的方法的步骤。
本发明具有如下有益效果:
本发明提供的一种分布式数据库在线扩容方法及装置,通过第一备库中的一个与第二主库建立传输关系,进而不影响第一主库的业务访问,可以实现在线扩容。
在优选的技术方案中,通过多个备库替换对应物理分片中不可用的主库或者备库,实现,进而可以实现自动高可用切换保证能力,尽最大能力地降低对在线业务的影响,缩短扩容所需时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请中分布式数据库在线扩容方法流程示意图。
图2示出了本申请实施例中扩容过程的具体流程图。
图3示出了本申请实施例中分布式数据库在线扩容装置结构示意图。
图4示出适于用来实现本申请实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本申请实施例中提供的一种分布式数据库在线扩容方法流程图。如图1所示,该方法具体包括:
S1:在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
S2:将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
S3:当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
S4:将第二主库中的第一数据和第二数据同步至所述多个第二备库;
S5:清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
本发明提供的一种分布式数据库在线扩容方法及装置,通过第一备库中的一个与第二主库建立传输关系,进而不影响第一主库的业务访问,可以实现在线扩容。
本申请中,第一物理分片即为原始物理分片,第二物理分片即为扩容的新物理分片。第一主库即为原始物理分片中的原主库,第二主库为新物理分片中的新主库,第一备库为原始物理分片中的备库,第二备库即为新物理分片中的新备库,第一逻辑分片和第二逻辑分片为原始物理分片中的两个逻辑分片(类似于两个文件夹)。
在某些实施例中,多个备库可以替代故障的主库或者备库,下面逐一示出。
一实施例中,上述方法还包括:当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库。
第一主库不可用时,通过如下具体步骤进行第一主库的替代:对每一个数据库,均有Agent进程来探测其状态和所有相关信息,并将探测结果收集后发送给数据协调中心;决策模块Manager会自主从数据协调中心中获取相关数据库的所有监控信息。当决策模块Manager根据实时的监控信息发现主库故障时:
第一步,将故障库解除其第一主库角色,并同步该信息到数据协调中心;
第二步,再次获取各个相关的数据库(即主库及其相关的多个备库)实时监控信息,根据监控信息判断各个相关数据库的实时状态,选择实时状态正常的数据库作为候选库,如果所有相关数据库均被判断为故障库,则提前退出决策,无法选主,并同步该信息到数据协调中心。
第三步,根据已制定的决策模型,从一个或多个候选库中来选择一个候选库作为新的第一主库,例如:如果决策模型为满足RPO协议优先,则选择存储事务最全的候选库作为新主库。
第四步,决策模块Manager将决策结果同步到数据协调中心,并给新主库及其他候选库的Agent进程下达具体操作指令,重新建立新第一主库和其他候选库之间的主从复制关系,至此完成了故障切换。
可以理解,本实施例中,候选库即为上述的备库。
相同的道理,第二主库不可用时,上述方法还包括:当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
在某些实施例中,与第二主库进行数据传输的第一备库故障(即不可用)时,上述方法还包括:用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
可以理解,上述示例中,多个备库可以随时替代故障的主库或者备库,充分考虑了服务器故障等导致数据库不可用的情况,在提高数据库扩展能力的同时,在整个扩容过程中提供了自动高可用切换保障能力,尽最大能力地降低对在线业务的影响,缩短扩容所需时间。
在优选的实施例中,步骤S3具体包括:通过异步传输将所述第一数据和所述第二数据传输至第二主库。
异步可以保证无需中断在线业务实现数据的强一致,减轻数据多级同步对第一主库对外服务能力的影响。
此外,在一些实施例中,步骤S2具体包括:
通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
该实施例中,使用网络流式备份/恢复方式迁移数据,可减少在备库SA上落盘再读取带来的额外磁盘空间占用和IO损耗。
在一些实施例中,为减少数据的传输量,可以采用压缩数据进行传输,即第一数据和第二数据为压缩数据。
此外,上述方法进一步包括:
当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
断开建立传输关系的第一备库与第二主库之间的连接。
该实施例中,断开后的第一物理分片和第二物理分片高可用策略互不干扰,分别独立地采用相同的高可用决策。
图2示出了本申请实施例中扩容过程的具体流程图。
1、创建新主库MB并迁移数据
在迁移数据实施过程的技术关键点如下:
从原备库SA迁移数据到新主库MB,不影响原主库MA的对外服务能力,即不影响在线业务;
使用网络流式备份/恢复方式迁移数据,可减少在备库SA上落盘再读取带来的额外磁盘空间占用和IO损耗;
可采用压缩备份文件后再传输并限制备份文件传输时的网络流量,避免迁移数据影响在线业务的网络流量;
在此过程的异常处理方法如下:在该过程中出现任何异常,均不进行重试,回退并取消备份作业,等异常处理完毕后重做。
2、创建新备库SB并迁移数据
从新主库MB迁移数据到新备库SB,以及建立新主库MB和新备库SB之间的半同步复制关系,即MB的数据处理必须等待其事务日志传输到SB完毕后才会在继续下一个事务处理,能保证MB和SB之间的数据强一致。
在此过程的异常处理方法如下:在该过程中出现任何异常,均不进行重试,回退并取消备份作业,等异常处理完毕后重做。
3、建立原备库SA与新主库MB之间的异步复制关系。
迁移数据后,从原物理分片MA的数据仍在不断更新修改,需要建立起原物理分片A和新物理分片B之间的数据同步。新旧物理分片之间的数据同步采用异步模式,即原物理分片A的数据处理无需等待数据或事务日志完全同步到新物理分片B。虽然异步模式无法保证数据的强一致,但可以减轻数据多级数据同步对原主库MA对外服务能力的影响。
在原备库SA和新主库MB间建立数据同步关系后的高可用保障如下:
当原主库MA发生故障时,从多个可用备库中选取一个备库提升为新主库MA,若被提升为主的备库为SA,则从其余可用备库中选取一个备库作为SA,重新建立SA和MB之间的异步复制关系;否则,SA和MB之间的数据同步不变。
当原备库SA发生故障时,则从物理分片A的其他可用备库中选取一个备库作为新备库SA与MB重新建立数据同步关系。
当新主库MB发生故障时,可提升备库SB为新主库MB,重新建立与SA之间的数据同步关系,并恢复原故障主库后变为新备库SB。注意:新物理分片B也会有多个备库,这些备库之间没有任何区别,为了简化说明,用SB来说明多个备库中的任一个。
当新备库SB发生故障时,故障恢复SB即可,不影响SA和MB之间的数据同步。
4、切换业务流量
切换流量的目的是调整分布式中间件的路由配置,让被迁移逻辑分片上的业务流量转去新的物理分片B上,扩展分布式数据库的性能容量。具体操作如下:
(1)断开业务流量
原物理分片A和新物理分片B之间的追及时长和数据差异都小于指定阈值时,修改分布式中间件的路由规则,暂停业务在线访问物理分片A,让A和B之间数据完全一致。此过程的高可用保障仍使用图2所示流程。
(2)断开原备库SA与新主库MB之间的数据同步
断开原备库SA与新主库MB之间的数据同步后,物理分片A的主备和物理分片B的主备之间相互隔离,它们的高可用决策互不干扰,分别独立的采用相同的高可用决策:
当主库故障时,从多个可用备库中,选取一个备库作为新主库,并原主库故障恢复为新备库;
当备库故障时,无需主备切换,直接故障恢复备库即可。
此时,物理分片A的主库MA和物理分片B的主库MB可独立提供对外服务。
(3)修改路由规则并恢复业务流量
修改路由规则为原物理分片A仅更新逻辑分片1的数据,新物理分片B仅更新逻辑分片2的数据。
5、清理数据
清理数据的目的是为了清理原物理分片A和新物理分片B上不需要的数据,释放磁盘空间,扩展数据库存储能力上的性能容量。
可以理解,上述实施例充分考虑了服务器故障等导致数据库不可用的情况,在提高数据库扩展能力的同时,在整个扩容过程中提供了自动高可用切换保障能力,尽最大能力地降低对在线业务的影响,缩短扩容所需时间。
基于相同的发明构思,本申请还提供一种分布式数据库在线扩容装置,如图3所示,包括:
备库设置模块1,在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
数据第一同步模块2,将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
数据传输模块3,当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
数据第二同步模块4,将第二主库中的第一数据和第二数据同步至所述多个第二备库;
清理模块5,清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
基于相同的发明构思,在某些实施例中,还包括:
第一主库替代模块,当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库。
基于相同的发明构思,在某些实施例中,还包括:
第二主库替代模块,当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
基于相同的发明构思,在某些实施例中,还包括:
第一备库替代模块,当与第二主库建立传输关系的第一备库不可用时,从其他第一备库中选取一个第一备库与所述第二主库建立传输关系。
基于相同的发明构思,在某些实施例中,所述数据传输模块通过异步传输将所述第一数据和所述第二数据传输至第二主库。
基于相同的发明构思,在某些实施例中,所述数据第一同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
基于相同的发明构思,在某些实施例中,所述数据第二同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第二备库。
基于相同的发明构思,在某些实施例中,所述第一数据和第二数据为压缩数据。
基于相同的发明构思,在某些实施例中,还包括:
业务暂停模块,当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
连接断开模块,断开建立传输关系的第一备库与第二主库之间的连接。
可以理解,本申请提供的一种分布式数据库在线扩容装置,通过第一备库中的一个与第二主库建立传输关系,进而不影响第一主库的业务访问,可以实现在线扩容。
在优选的技术方案中,通过多个备库替换对应物理分片中不可用的主库或者备库,实现,进而可以实现自动高可用切换保证能力,尽最大能力地降低对在线业务的影响,缩短扩容所需时间。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图4,其示出了适于用来实现本申请实施例的计算机设备的结构示意图。
如图4所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有***600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (16)
1.一种分布式数据库在线扩容方法,其特征在于,包括:
在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库,具体通过如下四步实现第一主库的替代:
第一步,在故障库解除其第一主库角色,并同步该信息到数据协调中心;
第二步,获取第一主库及其相关的多个第一备库的实时监控信息,根据监控信息判断各个相关的第一备库的实时状态,选择实时状态正常的数据库作为候选库,如果所有相关的第一备库均被判断为故障库,则提前退出决策,无法选主,并同步该信息到数据协调中心;
第三步,根据RPO协议优先的决策模型,从一个或多个候选库中来选择一个存储事务最全的候选库作为新的第一主库;
第四步,决策模块将决策结果同步到数据协调中心,并给新主库及其他候选库的Agent进程下达具体操作指令,重新建立新第一主库和其他候选库之间的主从复制关系;
将第二主库中的第一数据和第二数据同步至所述多个第二备库;
当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
断开建立传输关系的第一备库与第二主库之间的连接;
清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
2.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,还包括:
当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
3.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,还包括:
当与第二主库建立传输关系的第一备库不可用时,从其他第一备库中选取一个第一备库与所述第二主库建立传输关系。
4.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,所述将所述第一数据和所述第二数据传输至第二主库,包括:
通过异步传输将所述第一数据和所述第二数据传输至第二主库。
5.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,所述将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库,包括:
通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
6.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,所述将第二主库中的第一数据和第二数据同步至所述多个第二备库,包括:
通过网络流式备份后恢复方式,将第一数据和第二数据同步至第二备库。
7.根据权利要求1所述的分布式数据库在线扩容方法,其特征在于,所述第一数据和第二数据为压缩数据。
8.一种分布式数据库在线扩容装置,其特征在于,包括:
备库设置模块,在第一主库所在第一物理分片内设置多个第一备库,在第二主库所在第二物理分片内设置多个第二备库;
数据第一同步模块,将第一主库的第一逻辑分片中的第一数据和第二逻辑分片中的第二数据同步至第一备库;
数据传输模块,当所述第一主库和所述第二主库均可用时,建立多个第一备库中的一个与第二主库的传输关系,将所述第一数据和所述第二数据传输至第二主库;
第一主库替代模块,当所述第一主库不可用时,用所述多个第一备库中的一个替代第一主库与所述第二主库建立传输关系,进而将所述第一数据和所述第二数据传输至第二主库,具体通过如下四步实现第一主库的替代:
第一步,在故障库解除其第一主库角色,并同步该信息到数据协调中心;
第二步,获取第一主库及其相关的多个第一备库的实时监控信息,根据监控信息判断各个相关的第一备库的实时状态,选择实时状态正常的数据库作为候选库,如果所有相关的第一备库均被判断为故障库,则提前退出决策,无法选主,并同步该信息到数据协调中心;
第三步,根据RPO协议优先的决策模型,从一个或多个候选库中来选择一个存储事务最全的候选库作为新的第一主库;
第四步,决策模块将决策结果同步到数据协调中心,并给新主库及其他候选库的Agent进程下达具体操作指令,重新建立新第一主库和其他候选库之间的主从复制关系;
数据第二同步模块,将第二主库中的第一数据和第二数据同步至所述多个第二备库;
业务暂停模块,当所述第一物理分片和所述第二物理分片之间的追及时长小于第一设定阈值,数据差异小于第二设定阈值时,修改路由规则,暂停业务在线访问第一物理分片;
连接断开模块,断开建立传输关系的第一备库与第二主库之间的连接;
清理模块,清理第一主库和第一备库中的第二数据,清理第二主库和第二备库中的第一数据,并修改路由规则为第一物理分片更新第一数据,第二物理分片更新第二数据。
9.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,还包括:
第二主库替代模块,当所述第二主库不可用时,用所述多个第二备库中的一个替代第二主库与所述第一主库建立传输关系,进而使所述第一数据和所述第二数据传输至替代第二主库的第二备库。
10.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,还包括:
第一备库替代模块,当与第二主库建立传输关系的第一备库不可用时,从其他第一备库中选取一个第一备库与所述第二主库建立传输关系。
11.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,所述数据传输模块通过异步传输将所述第一数据和所述第二数据传输至第二主库。
12.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,所述数据第一同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第一备库。
13.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,所述数据第二同步模块通过网络流式备份后恢复方式,将第一数据和第二数据同步至第二备库。
14.根据权利要求8所述的分布式数据库在线扩容装置,其特征在于,所述第一数据和第二数据为压缩数据。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795313.3A CN110489494B (zh) | 2019-08-27 | 2019-08-27 | 分布式数据库在线扩容方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795313.3A CN110489494B (zh) | 2019-08-27 | 2019-08-27 | 分布式数据库在线扩容方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489494A CN110489494A (zh) | 2019-11-22 |
CN110489494B true CN110489494B (zh) | 2023-02-24 |
Family
ID=68554503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910795313.3A Active CN110489494B (zh) | 2019-08-27 | 2019-08-27 | 分布式数据库在线扩容方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489494B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459913B (zh) * | 2020-03-31 | 2023-06-23 | 北京金山云网络技术有限公司 | 分布式数据库的容量扩展方法、装置及电子设备 |
CN112364104A (zh) * | 2021-01-13 | 2021-02-12 | 上海爱可生信息技术股份有限公司 | 分布式数据库扩容方法、分布式数据库***及计算机可读存储介质 |
CN112965956A (zh) * | 2021-03-18 | 2021-06-15 | 上海东普信息科技有限公司 | 数据库水平扩容方法、装置、设备和存储介质 |
CN115455149B (zh) * | 2022-09-20 | 2023-05-30 | 城云科技(中国)有限公司 | 基于编码查询方式的数据库构建方法及其应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069109A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库扩容的方法和*** |
CN107493327A (zh) * | 2017-08-11 | 2017-12-19 | 杭州顺网科技股份有限公司 | 分布式缓存管理方法、***及数据管理*** |
CN108319596A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种数据库的扩容方法和装置 |
CN108491422A (zh) * | 2018-02-07 | 2018-09-04 | 平安健康互联网股份有限公司 | 数据库自动化运维管理方法、服务器及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0593062A3 (en) * | 1992-10-16 | 1995-08-30 | Siemens Ind Automation Inc | Redundant networked database system |
US8032702B2 (en) * | 2007-05-24 | 2011-10-04 | International Business Machines Corporation | Disk storage management of a tape library with data backup and recovery |
-
2019
- 2019-08-27 CN CN201910795313.3A patent/CN110489494B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069109A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库扩容的方法和*** |
CN108319596A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种数据库的扩容方法和装置 |
CN107493327A (zh) * | 2017-08-11 | 2017-12-19 | 杭州顺网科技股份有限公司 | 分布式缓存管理方法、***及数据管理*** |
CN108491422A (zh) * | 2018-02-07 | 2018-09-04 | 平安健康互联网股份有限公司 | 数据库自动化运维管理方法、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110489494A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489494B (zh) | 分布式数据库在线扩容方法及装置 | |
CN111078667B (zh) | 一种数据迁移的方法以及相关装置 | |
CN106874142B (zh) | 一种实时数据容错处理方法及*** | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN116680256B (zh) | 数据库节点升级方法、装置和计算机设备 | |
CN113407380B (zh) | 跨集群灾备快速恢复的方法及装置、电子设备和存储介质 | |
CN111694865A (zh) | 基于分布式***的四层结构数据获取方法和装置 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
US8688939B2 (en) | Storage system and storage subsystem | |
CN113297173B (zh) | 分布式数据库集群管理方法及装置、电子设备 | |
CN114422331A (zh) | 容灾切换方法、装置及*** | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与*** | |
CN111381931A (zh) | 容灾方法、装置及*** | |
CN112243030A (zh) | 分布式存储***的数据同步方法、装置、设备及介质 | |
CN110737543B (zh) | 一种分布式文件***数据恢复的方法、装置及存储介质 | |
CN113630317B (zh) | 一种数据传输方法、装置、非易失性存储介质及电子装置 | |
CN111752892A (zh) | 分布式文件***及其实现方法、管理***、设备及介质 | |
CN115237674A (zh) | 基于opendaylight的SDN控制器的数据备份方法及设备、介质 | |
US10310955B2 (en) | Application service-level configuration of dataloss failover | |
CN111400098B (zh) | 一种副本管理方法、装置、电子设备及存储介质 | |
CN113064768B (zh) | 在区块链***中切换分片节点的方法和装置 | |
CN114285864A (zh) | 一种多活数据中心的切换方法及装置 | |
CN115269260A (zh) | 应用管理***及相关方法、装置、设备、介质、产品 | |
CN104298553B (zh) | 一种虚拟机迁移的方法、vrms和*** | |
CN113835930B (zh) | 一种基于云平台的缓存服务恢复方法、***和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |