掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、电子设备及计算机存储介质

文献发布时间:2023-06-19 09:44:49


数据处理方法、装置、电子设备及计算机存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及计算机存储介质。

背景技术

数据库备份和恢复是用户数据安全的重要保障,而随着用户业务规模的增加,数据库存储的数据量和存储负载也呈指数级增长。为了提升单机数据库性能,提供了一种数据库分库分表(MySQL Sharding)技术。

数据库分库分表技术是一种根据分库分表算法对数据库和/或数据表进行拆分并分布存储的技术,在具有分库分表的分布式数据库使用场景下,数据库备份和恢复操作就更为重要。

目前,针对上述使用场景下的分布式数据库,使用的数据备份和恢复方案主要有两种:

1.针对每个数据库实例(如MySQL实例)分别进行备份,后续使用备份的数据进行恢复。这种方式只能保证单个数据库实例(即物理分库)的数据一致性,无法保证全局的数据一致性。

2.在备份时,对数据库全局禁止写入,之后分别针对每个数据库实例(如MySQL实例)进行备份,后续使用备份的数据进行恢复。这种方式虽然保证了全局的数据一致性,但是对用户业务侵入较大,数据库在一定时间内无法提供数据写入服务,影响用户使用。

发明内容

有鉴于此,本发明实施例提供一种数据处理方案,以解决上述部分或全部问题。

根据本发明实施例的第一方面,提供了一种数据处理方法,其包括:接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份;在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定;获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

根据本发明实施例的第二方面,提供了一种数据处理方法,其包括:接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集,所述数据备份集为根据第一方面数据处理方法生成的数据备份集;根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

根据本发明实施例的第三方面,提供了一种数据处理装置,其包括:全量备份模块,用于接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份;锁定模块,用于在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定;第一获取模块,用于获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;解锁模块,用于解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

根据本发明实施例的第四方面,提供了一种数据处理装置,其包括:备份集确定模块,用于接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集,所述数据备份集为根据第三方面数据处理装置生成的数据备份集;全量恢复模块,用于根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

根据本发明实施例的第五方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面或第二方面所述的数据处理方法对应的操作。

根据本发明实施例的第六方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第二方面所述的数据处理方法。

根据本发明实施例提供的数据处理方案,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例一的一种数据处理方法的步骤流程图;

图2a为根据本发明使用场景一的一种分布式数据库进行数据库备份的时序图;

图2b为根据本发明数据处理方案的使用场景图;

图3为根据本发明实施例二的一种数据处理方法的步骤流程图;

图4为根据本发明实施例三的一种数据处理方法的步骤流程图;

图5为根据本发明实施例四的一种数据处理方法的步骤流程图;

图6为根据本发明实施例五的一种数据处理方法的步骤流程图;

图7为根据本发明实施例六的一种数据处理方法的步骤流程图;

图8为根据本发明实施例七的一种数据处理方法的步骤流程图;

图9为根据本发明使用场景二的一种分布式数据库进行数据库恢复的时序图;

图10为根据本发明实施例八的一种数据处理装置的结构框图;

图11为根据本发明实施例九的一种数据处理装置的结构框图;

图12为根据本发明实施例十的一种数据处理装置的结构框图;

图13为根据本发明实施例十一的一种数据处理装置的结构框图;

图14为根据本发明实施例十二的一种电子设备的结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

参照图1,示出了根据本发明实施例一的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括以下步骤:

步骤S102:接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份。

本实施例中,分布式数据库可以采用分库分表技术(如MySQL Sharding)的数据库,该种分布式数据库可以将数据量较大的数据表拆分为多个分表,并将这些分表分布在多个数据库实例(如MySQL实例)中。这样每个MySQL实例中的分表仅包含数据表的部分数据,从而将数据存储和计算压力分摊到多个MySQL实例中,以解决单机性能瓶颈的问题。

在对分布式数据库进行数据库备份时,需要保证全局数据一致性,即需要保证各个数据库实例的数据一致性。但是,跨数据库实例的数据更新操作(如数据删除、数据变更和数据插入)却极易造成全局数据不一致。

例如,分布式数据库包括数据表和与其对应的索引表,数据表和索引表均拆分为两个分表,并存储在两个数据库实例(例如图2中所示的MySQL实例A和MySQL实例B)上。当需要插入新数据时,需要在数据表和索引表中都插入新数据,若这一插入新数据操作需要MySQL实例A和MySQL实例B都执行,则只有在两个数据库实例都成功执行时才能保证全局数据一致,若其中任一失败,就会造成数据表和索引表数据不一致。

为了避免上述现象,确保数据一致性,现有技术中通常采取的方式是:全局禁止写入,即在数据库备份期间,禁止用户业务对数据库进行数据更新,但这种方式对用户业务的侵入性强,影响用户对分布式数据库的使用。

为了保证全局数据一致性,并降低对用户业务的侵入性,在本实施例中,首先,在接收到备份请求时,根据该备份请求指示分布式数据库的各数据库实例进行全量数据备份,例如,MySQL实例A和MySQL实例B分别进行全量数据备份。在全量数据备份过程中,数据库的涉及单个数据库实例的事务和非事务SQL可以正常执行,由此产生的数据更新可以根据各数据库实例的日志文件进行恢复。由于各数据库实例是进行单机备份,因此可以在保证数据一致性的基础上,还使得数据库备份过程中不会对用户业务造成较大侵入,可以不影响用户业务的正常运行。

步骤S104:在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定。

本实施例中,分布式事务即需要进行跨数据库实例的数据更新的事务,其中,如前所述,数据更新可以是数据变更、数据删除和数据插入等。通过在确定各数据库实例完成所述全量数据备份后,对跨数据库实例的分布式事务进行锁定,可以阻止新的分布式事务执行,从而避免了发生跨数据库实例的数据更新,保证了在全量数据备份完成后,数据库的全局数据一致性。

对于不同类型的数库,本领域技术人员可以采用与数据库类型对应的方式对分布式事务进行锁定,本实施例对此不作限定。

步骤S106:获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息。

各数据库实例均对应有日志文件,该日志文件中记录有各数据库实例在设定时间段内的增量数据。例如,本实施例中,该日志文件通过记录对应的数据库实例在设定时间段内的数据变更位置信息和数据变更后信息,可以记录设定时间段内的增量数据。当然,日志文件还可以记录对应的数据库实例在设定时间段内的各数据变更位置的数据变更前信息,以便于校验或纠错时使用或者在其他用途中使用。对于所述设定时间段,本领域技术人员可以根据需要确定具体开始时间和结束时间。例如,设定时间段的开始时间为对应的数据库实例开始进行全量备份操作的时间,结束时间为锁定分布式事务的时间,本发明实施例对此不作限制。

不同类型的数据库实例中的日志文件可能不同,以MySQL实例为例,日志文件可以是binlog文件。Binlog文件的数据格式为行格式(即binlog_format参数值为row)。这种数据格式的binlog文件可以记录数据库实例执行的每个插入记录、删除记录和变更记录的SQL语句,所影响的数据行在变更前和变更后的值等信息。

当然,在其他类型的数据库实例中,日志文件可以是其他类型的日志文件,本实施例对此不作限定。

通过获取日志文件的信息可以确保在需要进行数据库恢复时能够获得各数据库实例的日志文件,进而能够根据日志文件进行数据恢复。

在本实施例中,通过锁定分布式事务保证分布式数据库具有全局数据一致的状态,并在锁定分布式事务的期间获取日志文件的信息,确保日志文件记录的数据也是全局一致的。由于在分布式事务的锁定期间,需要获取的日志文件的信息的数据量很小,因此能够保证在较短的时间(如1秒)内完成获取,使得对分布式事务的锁定时间很短,几乎不会影响用户业务,实现了对数据库备份过程中能够保证全局数据一致性,且几乎不会侵入用户业务。

根据需要的不同,日志文件的信息可以是任何适当的信息。例如,日志文件的信息可以理解为日志文件的位点信息,其可以包括日志文件对应的数据库实例信息(如数据库实例ID)、日志文件的名称和日志文件的偏移量等。日志文件包括所述增量数据的数据变更位置信息和所述数据变更后信息。

步骤S108:解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

在获取日志文件的信息后,尽快解锁分布式事务,减少对数据库运行和用户业务的影响即可以正常进行分布式事务的提交。

同时,还根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集,该数据备份集可以供后续数据库恢复使用。

通过本实施例,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

实施例二

参照图3,示出了根据本发明实施例二的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括前述的步骤S102~步骤S108。

其中,所述步骤S104包括以下子步骤:

子步骤S1041:在确定各数据库实例完成所述全量数据备份后,确定是否所有执行中的跨数据库实例的所述分布式事务提交完成。

由于分布式事务的提交可能造成数据的全局一致性无法保证,为了避免这一问题,在确定各数据库实例完成全量数据备份后,锁定分布式事务之前,确定是否所有执行中的所述分布式事务提交完成。

需要说明的是,本实施例中的提交完成既可以是正式提交任务,也可以是回滚任务。

若确定所有执行中的分布式事务都提交完成,则执行子步骤S1042;反之,则可以不动作或者执行其他适当动作。

子步骤S1042:若提交完成,则生成指示锁定分布式事务的阻塞指令,以对用于进行跨数据库实例的数据更新的分布式事务进行锁定。

若所有执行中的分布式事务都提交完成,则表示此时分布式数据库的数据是全局一致的。此时,生成指示锁定分布式事务的阻塞指令,可以防止分布式数据库执行新的分布式事务而破坏数据的全局一致性,也使得在锁定分布式事务期间获取的日志文件的信息能够保证数据的全局一致性。

为了减少对用户业务的侵入程度,所述阻塞指令以秒级为阻塞时长单位。例如,1秒、2秒、5秒、10秒等,这样阻塞时间较短,从而尽可能地降低对用户业务的侵入。

通过本实施例,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

此外,阻塞指令以秒级为阻塞时长单位,可以尽可能地降低对用户业务的侵入。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

实施例三

参照图4,示出了根据本发明实施例三的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括前述的步骤S102~步骤S108。

所述步骤S104可以采用前述实施例一或实施例二中的方式实现,或者采用其他方式实现。

在本实施例中,在所述步骤S108包括以下子步骤:

子步骤S1081:生成允许分布式事务提交的解锁指令,以指示解除对分布式事务的锁定。

为了保证最小化对用户业务的侵入,在获得日志文件的信息后,即生成允许分布式事务提交的解锁指令,以使用户业务能够正常提交分布式事务。

本领域技术人员可以根据需要采用任何适当的方式生成解锁指令,本实施例对此不作限定。

子步骤S1082:根据各数据库实例进行全量数据备份时备份的各数据库实例的元数据、各数据库实例的内容数据备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

为了便于管理备份数据和后续进行数据库恢复,根据各数据库实例的元数据、内容数据备份结果和日志文件的信息生成数据备份集。

其中,元数据包括但不限于各数据库实例的配置信息、访问数据库实例使用的账号信息等。

内容数据备份结果中包括对应的数据库实例中存储的数据表中的数据。

日志文件包括数据变更位置信息和数据变更后信息,以记录增量数据。日志文件的信息可以是位点信息,其包括所述日志文件对应的数据库实例信息、所述日志文件的名称和日志文件的偏移量等。通过获取的日志文件的信息,使得后续在进行数据恢复时,可以根据日志文件的信息中包含的日志文件的名称获取日志文件。根据日志文件的偏移量和日志文件中的数据变更位置信息和数据变更后信息,确定增量数据。根据增量数据对日志文件对应的数据库实例进行增量恢复。

通过本实施例,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

此外,在获取日志文件的信息后生成解锁指令,使得用户业务能够正常提交分布式事务,最小化了对用户业务的侵入。根据元数据、备份结果和日志文件的信息生成数据备份集可以便于管理数据库的备份数据,方便后续进行数据库恢复。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

需要说明的是,前述的步骤中的先后执行顺序并不受步骤编号限制,本领域技术人员可以根据需要配置步骤的执行顺序,各步骤可以全部顺序执行、全部并行执行或者部分顺序执行部分并行执行。

使用场景一:

参照图2a,示出了一种分布式数据库进行数据库备份的时序图。参照图2b,示出了一种数据处理方案的使用场景图。的

本使用场景中,数据处理方案应用至分布式数据库中,分布式数据库包括中间件200和多个数据库实例(即数据库实施例中的300_1、300_2到300_N),中间件200和多个数据库实例300_1~300_N之间通过网络通信。其中,以分布式数据库中的中间件200(如DRDSproxy)为执行主体,对本发明实施例提供的数据处理方法进行说明。其中,中间件200是在用户业务端100与数据库实例300_1~300_N之间加入的服务进程,主要为用户业务端100提供分布式数据库的路由能力,用户业务端100的SQL(结构化查询语句)会根据分布式数据库的分库分表算法(例如,sharding)算法路由到需要的数据库实例上,这样可以方便用户业务端100方便地管理和操作多个数据库实例。

具体地,本使用场景中的数据处理方法通过中间件200进行数据库备份的过程如下:

步骤A1:用户业务端100通过中间件控制台(例如,DRDS控制台),触发中间件进行数据库备份操作。

步骤B1:中间件200(DRDS proxy)备份各数据库实例300_1~300_N的元数据。其中,元数据可以包括中间件200访问数据库实例300_1~300_N(RDS)使用的账号信息、数据库实例300_1~300_N的分库分表的配置信息等。

步骤C1:中间件200(DRDS proxy)触发下层所有数据库实例300_1~300_N(如MySQL实例)的全量备份操作。

步骤D1:中间件200(DRDS proxy)检查下层数据库实例300_1~300_N(如MySQ实例)的备份状态,直至所有数据库实例300_1~300_N全量备份完成。

步骤E1:中间件200(DRDS proxy)锁定分布式事务,阻塞当前所有未提交的分布式事务的提交。需要说明的是,在锁定分布式事务前,会等待所有正在提交分布事务执行完成,再进行锁定,从而防止造成全局数据不能保持一致性。

步骤F1:中间件200(DRDS proxy)记录每个数据库实例300_1~300_N(如MySQL实例)当前的日志文件(如binlog文件)的位点信息。其中,位点信息包括数据库实例信息(例如,serverId),日志文件的名称,日志文件的偏移量(即binlog offset)。日志文件包括用于记录所述增量数据的数据变更位置信息和所述数据变更后信息。

binlog文件是一种二进制格式文件,用于记录对数据库中数据的更新操作。如,记录每个数据更新操作的SQL影响的数据位置和变更前和变更后的数据。使用binlog文件能够可靠地记录数据库备份过程中产生的数据变更信息,进而保证后续根据binlog文件进行数据库恢复的可靠性。

步骤G1:中间件200(DRDS proxy)解锁分布式事务,允许所有分布式事务提交。

步骤H1:数据库备份完成,根据全量备份操作的备份结果、日志文件的信息和元数据生成对应的数据备份集。

在前述的数据库备份过程中,通过分布式事务锁定机制(即LOCK机制)和记录binlog位点信息(position)的方式实现对数据库的备份,保证了最小化对用户业务的影响。

其中,分布式事务锁定时长为秒级,且仅跨数据库事务提交操作被阻塞,其它SQL执行不受影响,保证在备份过程中,对用户业务的影响甚微,且不会由于分布式事务被锁定而报错,而且非事务SQL与单机事务SQL执行不受影响。

实施例四

参照图5,示出了根据本发明实施例四的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括以下步骤:

步骤S502:接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集。

本实施例中,以分布式数据库的中间件(如DRDS proxy)为执行主体,对本发明实施例提供的数据处理方法进行说明。如前述使用场景一中所述,中间件用于方便用户业务管理和操作分布式数据库中的数据库实例。

恢复请求用于指示根据某个数据备份集对分布式数据库进行数据库恢复。恢复请求可以通过数据备份集的名称、标识或存储地址等方式指示使用的数据备份集。

在本实施例中,所述数据备份集为根据前述的实施例一至三中任一所述数据处理方法生成的数据备份集。该数据备份集中至少包括各数据库实例进行全量备份操作的内容数据备份结果。

步骤S504:根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

中间件可以根据恢复请求指示的数据备份集确定恢复请求涉及的数据库实例,进而指示涉及的各数据库实例进行全量恢复操作。

第一种可行方式中,各数据库实例将备份结果全量恢复到原有数据库实例中。

第二种可行方式中,各数据库实例将备份结果全量恢复到新的恢复用数据库实例中。此方式中,步骤S504可以实现为:从所述数据备份集获取备份的数据库实例的内容数据备份结果,指示对应的各数据库实例将所述内容数据备份结果恢复到新创建的恢复用数据库实例中。

由于各数据库实例均创建一个新的数据库实例作为恢复用数据库实例,并将备份结果恢复到该恢复用数据库实例中,避免了第一种可行方式中存在的在恢复过程中影响用户业务对原有数据库实例的使用的问题,减少了在数据库恢复过程中对用户业务的侵入。

对于在数据库备份过程中,各数据库实例未进行数据更新操作的分布式数据库,进行全量恢复操作即完成了数据库恢复。

通过本实施例,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

实施例五

参照图6,示出了根据本发明实施例五的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括前述的步骤S502~步骤S504。

其中,所述方法还包括以下步骤:

步骤S506:从所述数据备份集中获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息。

需要说明的是,本步骤为可选步骤。对于数据备份集中包含日志文件的信息,且在数据库备份过程中,数据库实例进行了数据更新操作的数据库实例,在进行数据库恢复时执行步骤S506和步骤S508。

由于在数据库备份过程中部分或全部数据库实例进行了数据更新操作,因此可能存在部分数据更新操作的数据未被备份到备份结果中的情况,这种情况可能破坏数据的全局一致性,为了避免这一问题,在对各数据库实例进行全量恢复操作后,从数据备份集中获取记录有设定时间段内的增量数据的日志文件的信息,以便根据日志文件的信息对数据库备份过程中更新的数据进行恢复,从而确保数据全局一致。

在本实施例中,日志文件包括用于记录所述增量数据的数据变更位置信息和所述数据变更后信息。日志文件的信息包括:所述日志文件对应的数据库实例信息、所述日志文件的名称和日志文件的偏移量。当然,在其他实施例中,本领域技术人员可以根据需要配置日志文件的信息包含任何适当的内容。

例如,日志文件可以为binlog文件。该binlog文件的指示数据格式的参数(即binlog_format)为row,即指示记录每个数据更新操作的SQL所影响的数据行、以及数据行的变更前和变更后的值。

步骤S508:根据所述日志文件的信息,对全量恢复操作后的数据库实例进行增量恢复操作。

在一具体实现中,所述步骤S508包括以下子步骤:

子步骤S5081:根据所述日志文件的信息,确定待进行增量恢复的数据库实例和确定的所述数据库实例在所述设定时间段内的增量数据。

例如,在本实施例中,日志文件通过记录对应的数据库实例在设定时间段内的数据变更位置信息和数据变更后信息来实现记录增量数据的目的。当然,在其他实施例中,可以采用其他方式记录增量数据。

此时确定待进行增量恢复的数据库实例和增量数据的过程可以为:根据日志文件的信息中的数据库实例名称,确定待进行增量恢复的数据库实例。根据日志文件的信息中的日志文件的名称和日志文件的偏移量,确定待进行增量恢复的数据库实例在设定时间段内数据变更位置信息和数据变更后信息。进而,根据数据变更位置信息,确定数据库实例中增量数据的位置,根据数据变更后信息确定增量数据的内容。

子步骤S5082:根据所述增量数据,对确定的所述数据库实例进行增量恢复。

例如,将确定的增量数据的位置处的数据更新为数据变更后信息。这样就能够恢复在数据库备份过程中进行数据更新操作产生的数据,从而确保数据全局一致性。

通过本实施例,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

此外,对于在数据库备份过程中进行了数据更新操的数据库实例,根据日志文件的信息对全局恢复操作后的数据库实例进行增量恢复操作,可以充分确保数据库数据的全局一致性。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

实施例六

参照图7,示出了根据本发明实施例六的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括前述的步骤S502~步骤S504。

其中,所述方法还可以包括或不包括前述的步骤S506~步骤S508。在本实施例中,所述方法还包括以下步骤:

步骤S510:从所述数据备份集中获取备份的各数据库实例的元数据,根据所述元数据创建新的中间件实例,并将所述元数据恢复至所述新的中间件实例。

在分布式数据库中,由于中间件(如DRDS proxy)需要为用户业务提供分布式数据库的路由功能,因此在中间件上存储有分布式数据库的各数据库实例的元数据,元数据包括但不限于:中间件访问数据库实例(RDS)使用的账号信息、数据库实例的分库分表的配置信息等。

在本实施例中,数据备份集中还包括各数据库实例的元数据。进行数据库恢复时,中间件从数据备份集中获取备份的元数据,并将其恢复到创建的新的中间件实例中。本领域技术人员可以采用任何适当的方式将元数据恢复到新的中间件实例中,例如采用复制的方式,本实施例对此不作限定。

这样针对恢复的新的分布式数据库创建对应的新的中间件实例,可以更加方便地为用户业务提供路由功能,使其可以方便地通过新的中间件实例管理和操作新恢复的分布式数据库,而且在恢复过程中,用户业务依然可以正常管理和操作原有的分布式数据库,使得数据库恢复过程对用户业务的侵入较小。

通过本实施例,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

此外,在恢复元数据时,创建新的中间件实例,有助于减少数据库恢复过程对用户业务的侵入。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

实施例七

参照图8,示出了根据本发明实施例七的一种数据处理方法的步骤流程图。

本实施例的数据处理方法包括前述的步骤S502~步骤S504。

其中,所述方法还可以包括或不包括前述的步骤S506~步骤S510。在包括步骤S510时,且所述步骤S504创建了新的恢复用数据库实例的情况下,所述方法还包括以下步骤:

步骤S512:将各新创建的恢复用数据库实例,挂载到所述新的中间件实例。

为了便于用户业务通过中间件管理恢复后的分布式数据库中的各数据库实例,因此在创建了恢复用数据库实例和新的中间件实例的情况下,将恢复用数据库实例挂载到新的中间件实例,从而使两者建立关联。

通过本实施例,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。

需要说明的是,前述的步骤中的先后执行顺序并不受步骤编号限制,本领域技术人员可以根据需要配置步骤的执行顺序,各步骤可以全部顺序执行、全部并行执行或者部分顺序执行部分并行执行。

使用场景二:

参照图9,示出了一种分布式数据库进行数据库恢复的时序图。

本使用场景中,数据处理方案应用至分布式数据库中,分布式数据库包括中间件200和多个数据库实例(即数据库实施例中的300_1、300_2到300_N),中间件200和多个数据库实例300_1~300_N之间通过网络通信。其中,以分布式数据库中的中间件200(如DRDSproxy)为执行主体,对本发明实施例提供的数据处理方法进行说明。其中,中间件200是在用户业务端100与数据库实例300_1~300_N之间加入的服务进程,主要为用户业务端100提供分布式数据库的路由能力,用户业务端100的SQL(结构化查询语句)会根据分布式数据库的分库分表算法(例如,sharding)算法路由到需要的数据库实例上,这样可以方便用户业务端100方便地管理和操作多个数据库实例。

具体地,本使用场景中的数据处理方法通过中间件进行数据库恢复的过程如下:

步骤A2:用户业务端100在中间件200(如DRDS proxy)控制台,选择一个有效的数据备份集,并触发恢复请求。

步骤B2:中间件200(DRDS proxy)根据恢复请求,创建新的中间件实例,并将相关元数据同步至新的中间件实例。

步骤C2:中间件200(DRDS proxy)触发下层所有数据库实例300_1~300_N(如图9所示的MySQL A和MySQL B)基于该数据备份集的全量恢复操作,使各数据库实例创建新的恢复用数据库实例(如图9所示的MySQL C和MySQL D),并将数据备份集中的备份结果恢复至新的恢复用数据库实例。

步骤D2:中间件200(DRDS proxy)检查各数据库实例300_1~300_N的恢复状态,直至全部数据库实例的全量恢复操作完成。

步骤E2:中间件200(DRDS proxy)将新的恢复用数据库实例挂载到新的中间件实例下。

步骤F2:中间件200(DRDS proxy)根据数据备份集中记录的每个数据库实例的日志文件(如binlog文件)的位点信息,将原数据库实例中的从开始数据库备份到锁定分布式事务期间的binlog应用至对应的恢复用数据库实例中,以补全这段时间的增量数据。由于binlog记录的是数据行的变更,即使部分binlog重复应用到恢复用数据库实例,也能保证幂等及恢复数据的正确性。

步骤G2:中间件200(DRDS proxy)完成数据库恢复。

在前述的数据库恢复过程中,基于数据备份集中的binlog位点(position)信息,实现了Point-In-Position的恢复机制,通过数据库实例的全量恢复操作和日志文件(binlog)的增量恢复操作,保证了分布式数据库场景下的全局数据一致性。

实施例八

参照图10,示出了根据本发明实施例八的一种数据处理装置的结构框图。

本实施例的数据处理装置包括:全量备份模块1002,用于接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份;锁定模块1004,用于在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定;第一获取模块1006,用于获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;解锁模块1008,用于解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

通过本实施例,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

实施例九

参照图11,示出了根据本发明实施例九的一种数据处理装置的结构框图。

本实施例的数据处理装置包括:全量备份模块1102,用于接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份;锁定模块1104,用于在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定;第一获取模块1106,用于获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;解锁模块1108,用于解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

可选地,所述锁定模块1104包括:事务确定模块11041,用于在确定各数据库实例完成所述全量数据备份后,确定是否所有执行中的跨数据库实例的所述分布式事务提交完成;阻塞指令生成模块11042,用于若提交完成,则生成指示锁定分布式事务的阻塞指令,以对用于进行跨数据库实例的数据更新的分布式事务进行锁定;其中,所述阻塞指令以秒级为阻塞时长单位。

可选地,所述日志文件包括用于记录所述增量数据的数据变更位置信息和所述数据变更后信息;所述日志文件的信息包括:所述日志文件对应的数据库实例信息、所述日志文件的名称和日志文件的偏移量。

可选地,所述解锁模块1108包括:解锁指令生成模块11081,用于生成允许分布式事务提交的解锁指令,以指示解除对分布式事务的锁定;备份集生成模块11082,用于根据各数据库实例进行全量数据备份时备份的各数据库实例的元数据、各数据库实例的内容数据备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

本实施例的数据处理装置用于实现前述多个方法实施例中相应的数据处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。

实施例十

参照图12,示出了根据本发明实施例十的一种数据处理装置的结构框图。

本实施例的数据处理装置包括:备份集确定模块1202,用于接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集,所述数据备份集为上述数据处理装置生成的数据备份集;全量恢复模块1204,用于根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

通过本实施例,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

实施例十一

参照图13,示出了根据本发明实施例十一的一种数据处理装置的结构框图。

本实施例的数据处理装置包括:备份集确定模块1302,用于接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集,所述数据备份集为上述数据处理装置生成的数据备份集;全量恢复模块1304,用于根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

可选地,所述装置还包括:信息获取模块1306,用于从所述数据备份集中获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;增量恢复模块1308,用于根据所述日志文件的信息,对全量恢复操作后的数据库实例进行增量恢复操作。

可选地,所述装置还包括:中间件创建模块1310,用于从所述数据备份集中获取备份的各数据库实例的元数据,根据所述元数据创建新的中间件实例,并将所述元数据恢复至所述新的中间件实例。

可选地,所述全量恢复模块1304用于从所述数据备份集获取备份的数据库实例的内容数据备份结果,指示对应的各数据库实例将所述内容数据备份结果恢复到新创建的恢复用数据库实例中。

可选地,所述装置还包括:挂载模块1312,用于将各新创建的恢复用数据库实例,挂载到所述新的中间件实例。

可选地,所述增量恢复模块1308包括:实例确定模块13081,用于根据所述日志文件的信息,确定待进行增量恢复的数据库实例和确定的所述数据库实例在所述设定时间段内的增量数据;增量执行模块13082,用于根据所述增量数据,对确定的所述数据库实例进行增量恢复。

本实施例的数据处理装置用于实现前述多个方法实施例中相应的数据处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。

实施例十二

参照图14,示出了根据本发明实施例十二的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图14所示,该电子设备可以包括:处理器(processor)1402、通信接口(Communications Interface)1404、存储器(memory)1406、以及通信总线1408。

其中:

处理器1402、通信接口1404、以及存储器1406通过通信总线1408完成相互间的通信。

通信接口1404,用于与其它电子设备如终端设备或服务器进行通信。

处理器1402,用于执行程序1410,具体可以执行上述数据处理方法实施例中的相关步骤。

具体地,程序1410可以包括程序代码,该程序代码包括计算机操作指令。

处理器1402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器1406,用于存放程序1410。存储器1406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序1410具体可以用于使得处理器1402执行以下操作:接收针对分布式数据库的备份请求,根据所述备份请求指示对应的各数据库实例进行全量数据备份;在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定;获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;解锁所述分布式事务,并根据各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

在一种可选的实施方式中,程序1410还用于使得处理器1402在确定各数据库实例完成所述全量数据备份后,对用于进行跨数据库实例的数据更新的分布式事务进行锁定时,在确定各数据库实例完成所述全量数据备份后,确定是否所有执行中的跨数据库实例的所述分布式事务提交完成;若提交完成,则生成指示锁定分布式事务的阻塞指令,以对用于进行跨数据库实例的数据更新的分布式事务进行锁定;其中,所述阻塞指令以秒级为阻塞时长单位。

在一种可选的实施方式中,所述日志文件包括用于记录所述增量数据的数据变更位置信息和所述数据变更后信息;所述日志文件的信息包括:所述日志文件对应的数据库实例信息、所述日志文件的名称和日志文件的偏移量。

在一种可选的实施方式中,程序1410还用于使得处理器1402在解锁所述分布式事务,并根据备份的各所述数据库实例的备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集时,生成允许分布式事务提交的解锁指令,以指示解除对分布式事务的锁定;根据各数据库实例进行全量数据备份时备份的各数据库实例的元数据、各数据库实例的内容数据备份结果和所述日志文件的信息,生成所述分布式数据库的数据备份集。

或者,

程序1410具体可以用于使得处理器1402执行以下操作:接收针对分布式数据库的恢复请求,并确定所述恢复请求指示的数据备份集,所述数据备份集为根据前述数据处理方法生成的数据备份集;根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作。

在一种可选的实施方式中,程序1410还用于使得处理器1402从所述数据备份集中获取记录有各数据库实例在设定时间段内的增量数据的日志文件的信息;根据所述日志文件的信息,对全量恢复操作后的数据库实例进行增量恢复操作。

在一种可选的实施方式中,程序1410还用于使得处理器1402从所述数据备份集中获取备份的各数据库实例的元数据,根据所述元数据创建新的中间件实例,并将所述元数据恢复至所述新的中间件实例。

在一种可选的实施方式中,程序1410还用于使得处理器1402在根据所述数据备份集,指示对应的各数据库实例进行全量恢复操作时,从所述数据备份集获取备份的数据库实例的内容数据备份结果,指示对应的各数据库实例将所述内容数据备份结果恢复到新创建的恢复用数据库实例中。

在一种可选的实施方式中,程序1410还用于使得处理器1402将各新创建的恢复用数据库实例,挂载到所述新的中间件实例。

在一种可选的实施方式中,程序1410还用于使得处理器1402在根据所述日志文件的信息,对全量恢复操作后的数据库实例进行增量恢复操作时,根据所述日志文件的信息,确定待进行增量恢复的数据库实例和确定的所述数据库实例在所述设定时间段内的增量数据;根据所述增量数据,对确定的所述数据库实例进行增量恢复。

程序1410中各步骤的具体实现可以参见上述数据处理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

通过本实施例的电子设备,根据备份请求指示分布式数据库对应的各数据库实例进行全量数据备份,并在全量数据备份完成后锁定分布式事务并获取日志文件的信息。通过锁定分布式事务防止分布式事务造成数据库实例间的数据不一致,导致全局数据不一致的问题,保证分布式数据库具有全局数据一致状态。在获取日志文件的信息后,解锁分布式事务使分布式数据库可以正常运行,并根据各数据库实例的备份结果和日志文件的信息生成数据备份集,实现了在最小化对用户业务影响的前提下,保证数据全局一致性的数据库备份。

或者,通过本实施例的电子设备,在进行数据库恢复时,使用前述实施例一到三中任一所述的数据处理方法生成的数据备份集进行数据恢复,确保了数据库恢复的准确性,且能够保证恢复后的分布式数据库的数据全局一致性。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据处理方法。此外,当通用计算机访问用于实现在此示出的数据处理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据处理方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

相关技术
  • 数据处理方法及装置、电子设备和计算机可读存储介质
  • 数据处理方法和装置、计算机可读存储介质和电子设备
技术分类

06120112285737