CN115858236A - 一种数据备份方法和数据库集群 - Google Patents
一种数据备份方法和数据库集群 Download PDFInfo
- Publication number
- CN115858236A CN115858236A CN202111117550.8A CN202111117550A CN115858236A CN 115858236 A CN115858236 A CN 115858236A CN 202111117550 A CN202111117550 A CN 202111117550A CN 115858236 A CN115858236 A CN 115858236A
- Authority
- CN
- China
- Prior art keywords
- log
- data node
- physical
- data
- storage device
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据备份方法,方法包括:主数据节点将第一物理日志写入第一存储设备,第一存储设备用于将第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从第二存储设备中获取第一物理日志,其中,第一存储设备部署于不同的数据库集群,第二数据节点用于作为第一数据节点的备份节点。本申请中的第一数据库集群(主集群)中的数据节点可以通过存储设备将物理日志快速地同步到第二数据库集群(备集群),从而提高了数据备份时的数据传输效率。
Description
技术领域
本申请涉及数据库领域,更具体地,涉及一种数据备份方法和数据库集群。
背景技术
随着包括云计算、大数据等信息技术的快速发展,越来越多的企业把应用、数据、***进行集中处理,数据大集中的同时也面临风险,灾难性的突发事件发生时如何保障企业核心业务的在线性,即核心业务的不间断运行,成为企业关注的首要问题。金融、银行业对数据安全有着较高的要求,需要保证数据的安全性以及服务的可用性。因此需要采用双集群的容灾方案,主集群在出现故障的情况下,备集群还具备能继续提供服务的能力。当发生自然或人为灾难时,保护数据并快速进行恢复。
数据容灾,是指建立一个异地的数据***,该***是本地关键应用数据的一个可用复制。在本地数据及整个应用***出现灾难时,***至少在异地保存有一份可用的关键业务的数据。其采用的主要技术是数据备份和数据复制技术,数据容灾的处理,实际上是异地数据复制的处理。该异地数据可以是与本地生产数据的完全实时复制(同步复制),也可以比本地数据略微落后(异步复制)。
以Oracle数据库的数据容灾为例,Oracle数据库为保证高可用性,高可靠性,在同城(或者异地)的两个机房内分别部署主存储库和备存储库,其中,备存储库是主存储库的备份,并使用数据保护技术进行主存储库和备存储库间的数据同步。
数据同步的基本流程是当主存储库产生物理日志时,通过事先配置的传送方式,以同步复制或者异步复制的方式传送到备存储库,以实现主存储库备存储库间的数据复制。
现有技术中,采用网络专线的方式进行物理日志的传输,然而网络专线导致该架构下网络设施成本较高,且采用网络专线的传输方式的传输效率较低。
发明内容
本申请实施例提供了一种数据备份方法,可以提高数据备份时的数据传输效率。
第一方面,本申请提供了一种数据备份方法,所述方法应用于第一数据库集群,所述第一数据库集群包括第一数据节点,所述方法包括:所述第一数据节点获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;所述第一数据节点将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点用于作为所述第一数据节点的备份节点。
在一种可能的实现中,第一存储设备和第二存储设备之间可以进行数据的同步复制,第一存储设备和第二存储设备可以为具有远程以及并行数据传输能力的存储设备。
通过上述方式,第一数据库集群(主集群)中的数据节点可以通过存储设备将物理日志快速地同步到第二数据库集群(备集群),从而更接近于实现数据恢复点目标(recovery point objective,RPO)为0的目标,同时保证业务的高性能,提高了数据备份时的数据传输效率。
在一种可能的实现中,所述第一物理日志包括对所述第一数据节点中数据的操作信息,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作,第一物理日志可以为Redo日志,也可以被称为XLog,其可以记录数据页的物理修改(或者描述为数据的变化情况),可以被用来恢复事务提交后的物理数据页。
在一种可能的实现中,所述第一数据节点在将所述第一物理日志写入所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交。
其中,事务提交可以保证第一物理日志中对数据的操作信息持久化,若第一数据节点在完成第一物理日志的事务提交之后才将第一物理日志传递至第一存储设备,由于第一数据节点可能会出现事务提交还未完成就出现故障的情况,则会出现第一物理日志无法被传递至第一存储设备,也就是备数据节点无法获取到用于进行日志回放的第一物理日志,本申请实施例中,第一数据节点在对所述第一数据节点中的数据进行事务提交之前,就将第一物理日志传递至所述第一存储设备,将第一物理日志写入第一存储设备成功后,即可认为第一物理日志已复制到备数据节点,即使第一数据节点出现事务提交还未完成就出现故障的情况,也可以将第一物理日志传递至备数据节点。
在一种可能的实现中,第一数据节点可以将第一物理日志写入第一存储设备,第一存储设备上可以包括为第一数据节点划分出的存储区域(第一存储区域),以第一数据节点属于第一数据库集群中的第一分片为例,第一存储设备上可以包括为第一分片划分出的一个共享卷,第一分片中的各个数据节点可以共享该共享卷。具体的,所述第一存储设备可以包括用于存储所述第一数据节点的物理日志的第一存储空间以及用于存储所述第三数据节点的物理日志的第二存储空间,所述第一存储空间和所述第二存储空间不同。
在一种可能的实现中,所述第一数据库集群还包括第三数据节点,在所述第三数据节点将第二物理日志写入所述第一存储设备时,所述第一数据节点可以并行将所述第一物理日志写入第一存储设备。其中,第三数据节点可以为第一数据库集群中的主节点。具体的,可以在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
其中,所谓并行,可以理解为在时间上,第一数据节点将所述第一物理日志写入所述第一存储空间的动作和第三数据节点将物理日志写入所述第二存储空间的动作是同时发生的。
其中,由于为第一数据库集群中不同的主节点划分了不同的存储区域,进而可以支持不同的主节点之间并行执行物理日志的写入,提高了数据写入的并发性,进而提高了数据备份时日志的传输效率。
在一种可能的实现中,所述第一数据库集群还包括第三数据节点,在所述第三数据节点将第二物理日志写入所述第一存储设备时,所述第一数据节点可以并行将所述第一物理日志写入第一存储设备。其中,第三数据节点可以为第一数据库集群中的主节点。具体的,可以在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
其中,由于为第一数据库集群中不同的主节点划分了不同的存储区域,进而可以支持不同的主节点之间并行执行物理日志的写入,提高了数据写入的并发性,进而提高了数据备份时日志的传输效率。
由于存储设备中的存储空间的大小有限,在一种可能的实现中,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间,第一数据节点基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间时,可以从所述第一存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志,并基于所述目标物理日志已被所述第二数据节点执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。也就是在第一存储空间的大小不足时,将第一存储空间中已经被占用的存储空间清空并重复使用,且为了防止备数据节点还未拿到物理日志时就被清空,第一数据节点清空的物理日志一定是备数据节点已经进行了日志回放的物理日志(该信息可以是备数据节点完成日志回放后反馈至第一数据节点的),通过上述方式,基于循环读写机制,在保证备数据节点可以拿到全部的物理日志的前提下,节省了存储设备的存储空间。
在一种可能的实现中,所述第一存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间;
所述基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述第一存储空间中确定目标存储空间,包括:基于所述第一存储空间中所述尾部地址对应的存储空间被占用,从所述第一存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
在一种可能的实现中,所述第一存储设备为裸设备。其中,裸设备(raw device),也可以称之为裸分区(即原始分区),是一种没有经过格式化,不通过文件***来读取的设备文件。由应用程序负责对它进行读写操作。不经过文件***的缓冲。它是不***作***直接管理的设备。可以直接从数据节点的内存写到存储设备张红,少了从操作***缓存写到存储设备操作***缓存的步骤,I/O效率更高。第一数据节点可以基于直接I/O的方式将所述第一物理日志写入第一存储设备,提升了读写性能。
在一种可能的实现中,在所述第一数据节点根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交之后,所述第一数据节点还可以将包含提交信息的第二物理日志写入所述第一存储设备,所述第一存储设备用于将所述第二物理日志传递至第二存储设备,以便第二数据库集群中的管理节点从所述第二存储设备中获取所述第二物理日志,所述提交信息指示所述第一数据节点已完成所述第一物理日志的事务提交。其中提交信息可以被第二数据库集群在进行日志回放时作为全局一致性点的参考。
其中,提交信息可以包括事务提交号,事务提交号可以用于标识已提交的数据库事务(也称事务,transaction)。事务是数据存储节点执行数据库操作的逻辑单位,由一个数据库操作序列构成。事务处于已提交状态表明该事务已成功执行,且已将该事务涉及的数据写入到数据存储节点中。
在一种可能的实现中,所述第一数据库集群还包括第四数据节点,所述第四数据节点用于作为所述第一数据节点的备份节点,所述方法还包括:所述第四数据节点从所述第一存储设备中获取所述第一物理日志;所述第四数据节点根据所述第一物理日志进行日志回放。
应理解,第四数据节点可以首先读取第一存储设备首部的控制信息,进行校验后,比较存储设备上的日志和本地物理日志的写入进度,如果存储设备上有更新的物理日志,则读取物理日志拷贝到本地,并进行回放,如果没有数据需要读取则循环等待。
第二方面,本申请提供了一种数据备份方法,所述方法应用于第二数据库集群,所述第二数据库集群包括第二数据节点,所述第二数据节点用于作为第一数据节点的备份节点,所述第一数据节点属于第一数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,第一存储设备部署于所述第一数据库集群,第二存储设备部署于所述第二数据库集群,所述方法包括:所述第二数据节点从所述第二存储设备中获取第一物理日志,所述第一物理日志为来自所述第一数据节点并经由所述第一存储设备传递而存储在所述第二存储设备中的物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;所述第二数据节点根据所述第一物理日志进行日志回放。
通过上述方式,第一数据库集群(主集群)中的数据节点可以通过存储设备将物理日志快速地同步到第二数据库集群(备集群),从而更接近于实现数据恢复点目标(recovery point objective,RPO)为0的目标,同时保证业务的高性能,提高了数据备份时的数据传输效率。
在一种可能的实现中,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
和第一存储设备类似,第二存储设备上可以包括为第二数据节点划分出的存储区域(第三存储区域),以第二数据节点属于第二数据库集群中的第一分片为例,第二存储设备上可以包括为第一分片划分出的一个共享卷,第一分片中的各个数据节点可以共享该共享卷。具体的,所述第二存储设备可以包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同。进而,和第一数据节点将第一物理日志写入第一存储设备时类似,所述第二数据节点可以在其他数据节点从第二存储设备中读取物理日志的同时,并行从所述第二存储设备中获取第一物理日志。
其中,所谓并行,可以理解为在时间上,第一数据节点将所述第一物理日志写入所述第一存储空间的动作和第三数据节点将物理日志写入所述第二存储空间的动作是同时发生的。
其中,由于为第二数据库集群中不同的主节点划分了不同的存储区域,进而可以支持不同的分片的备数据节点之间并行执行物理日志的读取,提高了数据读取的并发性,进而提高了数据备份时日志的传输效率。
在一种可能的实现中,为了保证各个备数据节点之间的分布式一致性,需要保证各个备数据节点之间的日志回放进度相同,也就是回放的日志序列号LSN一致(日志序列号可以指示回放进度,序列号越大,则进度越靠前),本申请实施例中,第二数据库集群中的管理节点可以维护一个全局信息(该全局信息可以称之为barrier点),该全局信息可以各个备数据节点已获取到的物理日志的日志序列号,且该日志序列号为各个主节点当前已进行事务提交的最大物理日志序列号中最小的日志序列号,例如管理节点获取到:主节点1当前的事务提交进度为1、2,主节点2当前的事务提交进度为1、2,主节点3当前的事务提交进度为1、2、3,主节点4当前的事务提交进度为1、2、3、4,则3为管理节点所获取到的各个主节点当前已进行事务提交的最大物理日志序列号中最小的物理日志序列号。
在一种可能的实现中,所述多个主数据节点中的不同主数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交,也就是说,序列号可以指示主节点事务提交的进度。
应理解,上述管理节点的功能可以通过第二数据库集群中的CMA、CMS、ETCD等模块之间的相互配合来实现。
其中,第一数据库集群中的协调节点可以获取到各个主数据节点当前的事务提交进度(即完成事务提交的物理日志的日志序列号,例如可称之为barrier点),并将包含该事务提交进度的提交信息以物理日志的形式传递至第二数据库集群(该步骤也可以是主数据节点完成的),备数据节点从第二存储设备获取到携带有提交信息的物理日志后,可以将物理日志写入本地磁盘,并对新落盘的物理日志进行解析,并将解析到的barrier点存储在哈希表中,并记录当前收到的最大barrier点,最大的barrier点即为主数据节点最新完成事务提交的物理日志的日志序列号,管理节点的功能可以为CMA、CMS、ETCD相互配合实现的,其中,CMA查询CN、DN的barrier最大值上报至CMS,CMS可以将各个备数据节点上的最大barrier点的最小值作为“候选序列号”(或者称之为待探测值),存入ETCD中;CMA从ETCD获取到“待探测值”,对DN进行查询,确认DN是否都存在该点(也就是确定多个备数据节点中的每个备数据节点是否已获取到所述候选序列号对应的物理日志),将结果上报给CMS,CMS进行如下判断:若该“待探测值”对应的物理日志在各个备数据节点都存在,则可以将其作为“目标序列号”(或者简称为目标值)点存入ETCD中,否则舍弃,CMA读取ETCD中的“目标值”,更新本地的“目标值”。在一次上报中,CMA需要查询执行barrier最大值的上报、本地查询“待探测值”是否存在,更新“目标值”这三步;CMS需要执行“待探测值”的更新和“目标值”的更新。Barrier删除是一致性的终点,Barrier删除发生在物理日志回放中,在日志回放时,回放到barrier点时会对回放位置进行更新,并在哈希表将该barrier点删除,从而完成barrier从生成到删除的全过程。
本申请实施例中,基于第二数据库集群中的管理节点来维护一个目标序列号作为全局信息,该目标序列号为所述多个所述日志序列号中最小的序列号,且所述多个备数据节点中的每个备数据节点已获取到所述目标序列号对应的物理日志,各个备数据节点需要在当前待回放的物理日志对应的日志序列号等于目标序列号时才进行日志回放,保证了各个备数据节点回放到目标序列号为止,使得不同备数据节点均恢复到相同的位置,保证了分布式数据库内不同备数据节点间的数据的一致性。
第三方面,本申请提供了一种第一数据库集群,所述第一数据库集群包括第一数据节点,所述第一数据节点包括:
日志获取模块,用于获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
日志传递模块,用于将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点用于作为所述第一数据节点的备份节点。
在一种可能的实现中,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
在一种可能的实现中,所述第一数据节点还包括:
事务提交模块,用于在将所述第一物理日志传递至所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交。
在一种可能的实现中,所述第一数据库集群还包括第三数据节点;所述日志传递模块,具体用于:
在所述第三数据节点将第二物理日志写入所述第一存储设备时,并行将所述第一物理日志写入第一存储设备。
在一种可能的实现中,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间以及用于存储所述第三数据节点的物理日志的第二存储空间,所述第一存储空间和所述第二存储空间不同;
所述日志传递模块,具体用于:
在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
在一种可能的实现中,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间,所述日志传递模块,具体用于:
基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述第一存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志;
基于所述目标物理日志已被所述第二数据节点执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。
在一种可能的实现中,所述第一存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间;
所述日志传递模块,具体用于:
基于所述第一存储空间中所述尾部地址对应的存储空间被占用,从所述第一存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
在一种可能的实现中,所述第一存储设备为裸设备。
在一种可能的实现中,所述日志传递模块,还用于:
在所述第一数据节点根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交之后,所述第一数据节点将包含提交信息的第二物理日志写入所述第一存储设备,所述第一存储设备用于将所述第二物理日志传递至第二存储设备,以便第二数据库集群中的管理节点从所述第二存储设备中获取所述第二物理日志,所述提交信息指示所述第一数据节点已完成所述第一物理日志的事务提交。
在一种可能的实现中,所述第一数据库集群还包括第四数据节点,所述第四数据节点用于作为所述第一数据节点的备份节点,所述第四数据节点包括:日志获取模块,用于从所述第一存储设备中获取所述第一物理日志;
日志回放模块,用于根据所述第一物理日志进行日志回放。
第四方面,本申请提供了一种第二数据库集群,所述第二数据库集群包括第二数据节点,所述第二数据节点用于作为第一数据节点的备份节点,所述第一数据节点属于第一数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,第一存储设备部署于所述第一数据库集群,第二存储设备部署于所述第二数据库集群,所述第二数据节点,包括:
日志获取模块,用于从所述第二存储设备中获取第一物理日志,所述第一物理日志为来自所述第一数据节点并经由所述第一存储设备传递而存储在所述第二存储设备中的物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
日志回放模块,用于根据所述第一物理日志进行日志回放。
在一种可能的实现中,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
在一种可能的实现中,所述第二数据库集群还包括第五数据节点;所述日志获取模块,具体用于:
在所述第五数据节点从所述第二存储设备中获取物理日志时,所述第二数据节点并行从所述第二存储设备中获取第一物理日志。
在一种可能的实现中,所述第二存储设备包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同;
所述日志获取模块,具体用于:
在所述第五数据节点从所述第四存储空间中获取物理日志时,所述第二数据节点并行从所述第三存储空间中获取第一物理日志。
在一种可能的实现中,所述第一数据库集群包括所述第一数据节点在内的多个主数据节点,所述第二数据库集群包括所述第二数据节点在内的多个备数据节点,所述第二数据库集群还包括管理节点,所述管理节点包括:
提交信息获取模块,用于从所述第二存储设备中获取来自于所述第一数据库集群的提交信息,所述提交信息包括所述多个主数据节点中每个主数据节点最新完成事务提交的物理日志的日志序列号,所述目标序列号为所述多个所述日志序列号中最小的序列号,且所述多个备数据节点中的每个备数据节点已获取到所述目标序列号对应的物理日志;
所述日志回放模块,具体用于所述第二数据节点从所述管理节点中获取所述目标序列号;
在确定所述第一物理日志的日志序列号等于所述目标序列号之后,根据所述第一物理日志进行日志回放。
在一种可能的实现中,所述多个主数据节点中的不同主数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交。
第五方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行上述第一方面及其任一可选的方法、以及上述第二方面及其任一可选的方法。
第六方面,本申请实施例提供了一种计算机程序产品,其特征在于,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行上述第一方面及其任一可选的方法、以及上述第二方面及其任一可选的方法。
第七方面,本申请提供了一种芯片***,该芯片***包括处理器,用于支持上述设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,该芯片***还包括存储器,该存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的架构示意;
图2为本申请实施例提供的架构示意;
图3为本申请实施例提供的架构示意;
图4为本申请实施例提供的数据备份方法的流程示意;
图5为本申请实施例提供的存储空间示意;
图6为本申请实施例提供的barrier点处理流程示意;
图7为本申请实施例提供的第一数据库集群示意;
图8为本申请实施例提供的第二数据库集群示意;
图9为本申请实施例提供的计算设备的一种结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本申请的说明书和权利要求书及上述附图中的术语“第一”、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
图1为依据本申请实施例的一个数据备份***的***逻辑结构示意图,***可以包含客户端、主存储库(例如本申请实施例中的第一数据库集群)和备存储库(例如本申请实施例中的第二数据库集群),其中,主存储库中可以包含多个分片(例如图1所示的分片1以及分片2),其中,每个分片可以包括数据节点(data node,DN),例如图1示出的分片1包含主节点1以及备份节点,分片1的备份节点可以作为主节点1的备份,分片2包含主节点2以及备份节点,其中,分片2的备份节点可以作为主节点2的备份。主存储库中可以包含协调节点(coordinator node,CN),此外,主存储库一侧还可以部署有硬件设备1,硬件设备1可以为存储设备(例如本申请实施例中的第一存储设备)。
备份数据库作为主数据库的备份,可以相对应的部署有多个分片,例如图1所示的分片1以及分片2,其中,备份数据库中的分片1可以作为主数据库中分片1的备份,其中,分片1中的多个备份节点可以作为主节点1的备份,分片2中的多个备份节点可以作为主节点2的备份,此外,主存储库一侧还可以部署有硬件设备2,硬件设备2可以为存储设备(例如本申请实施例中的第二存储设备)。
其中,主存储库或备存储库可以分别是一个存储阵列或网络接入存储(NetworkAttached Storage,NAS)或存储区域网络(storage area network,SAN)等网络存储架构。每一个存储节点(例如上述描述的数据节点以及协调节点)可以为一个逻辑单元号(logical unit number,LUN)或一个文件***。应理解,本申请实施例并不对存储库和存储节点的表现形式进行限定。
其中,尽管图1未示出,但主备数据库***还可以包括客户端,客户端可以和主数据库***以及备数据库之间通过网络连接,其中网络可以为因特网,内联网,局域网(LocalArea Networks,简称LANs),广域网络(Wireless Local Area Networks,简称WLANs),存储区域网络(Storage Area Networks,简称SANs)等,或者以上网络的组合。
图1所示的主节点以及备份节点可以由图2所示的计算设备200来实现。
图2为计算设备200的简化的逻辑结构示意图,如图2所示,计算设备200包括处理器202、内存单元204、输入/输出接口206、通信接口208、总线210和存储设备212。其中,处理器202、内存单元204、输入/输出接口206、通信接口208和存储设备212,通过总线210实现彼此之间的通信连接。
处理器202是计算设备200的控制中心,用于执行相关程序,以实现本发明实施例所提供的技术方案。可选的,处理器202包含一个或多个中央处理器单元(CentralProcessing Unit,CPU),例如,图2所示的中央处理器单元1和中央处理器单元2。可选的,计算设备200还可以包含多个处理器202,每一个处理器202可以是一个单核处理器(包含一个CPU)或多核处理器(包含多个CPU)。除非另有说明,在本申请实施例中,一个用于执行特定功能的组件,例如,处理器202或内存单元204,可以通过配置一个通用的组件来执行相应功能来实现,也可以通过一个专门执行特定功能的专用组件来实现,本申请并不对此进行限定。处理器202可以采用通用的中央处理器,微处理器,应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请所提供的技术方案。
处理器202可以通过总线210与一个或多个存储方案相连接。存储方案可以包含内存单元204和存储设备212。其中,存储设备212可以为只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。内存单元204可以为随机存取存储器。内存单元204可以与处理器202集成在一起或集成在处理器202的内部,也可以是独立于处理器202的一个或多个存储单元。
供处理器202或处理器202内部的CPU执行的程序代码可以存储在存储设备212或内存单元204中。可选的,存储在存储设备212内部的程序代码(例如,操作***、应用软件、备份模块、通信模块或存储控制模块等)被拷贝到内存单元204中,以供处理器202执行。
存储设备212可以为物理硬盘或其分区(包括小型计算设备***接口存储或全局网络块设备卷)、网络存储协议(包括网络文件***NFS等网络或机群文件***)、基于文件的虚拟存储设备(虚拟磁盘镜像)、基于逻辑卷的存储设备。可以包含高速随机存储器(RAM),也可以包含非易失性存储器,例如一个或者多个磁盘存储器,闪速存储器,或者其他非易失性存储器。在一些实施例中,存储设备还可能进一步包含与所述一个和多个处理器202分离的远程存储器,例如通过通信接口208与通信网络进行访问的网盘,该通信网络可以为因特网,内联网,局域网(LANs),广域网络(WLANs),存储区域网络(SANs)等,或者以上网络的组合。
操作***(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或是诸如Vxworks之类的嵌入式操作***)包括用于控制和管理常规***任务(例如内存管理、存储设备控制、电源管理等等)以及有助于各种软硬件组件之间通信的各种软件组件和/或驱动器。
输入/输出接口206用于接收输入的数据和信息,输出操作结果等数据。
通信接口208使用例如但不限于收发器一类的收发装置,来实现计算设备200与其他设备或通信网络之间的通信。
总线210可包括一通路,在计算设备200各个部件(例如处理器202、内存单元204、输入/输出接口206、通信接口208和存储设备212)之间传送信息。可选的,总线210可以使用有线的连接方式或采用无线的通讯方式,本申请并不对此进行限定。
应注意,尽管图2所示的计算设备200仅仅示出了处理器202、内存单元204、输入/输出接口206、通信接口208、总线210以及存储设备212,但是在具体实现过程中,本领域的技术人员应当明白,计算设备200还包含实现正常运行所必须的其他器件。
计算设备200可以为一般的通用计算设备或专门用途的计算设备,包括但不限于便携计算设备,个人台式计算设备,网络服务器,平板电脑,手机,个人数字助理(PDA)等任何电子设备,或者以上两种或者多种的组合设备,本申请并不对计算设备200的具体实现形式进行任何限定。
此外,图2的计算设备200仅仅是一个计算设备200的例子,计算设备200可能包含相比于图2展示的更多或者更少的组件,或者有不同的组件配置方式。根据具体需要,本领域的技术人员应当明白,计算设备200还可包含实现其他附加功能的硬件器件。本领域的技术人员应当明白,计算设备200也可仅仅包含实现本发明实施例所必须的器件,而不必包含图2中所示的全部器件。同时,图2中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
图2所示的硬件结构以及上述描述适用于本申请实施例所提供的各种计算设备,适用于执行本申请实施例所提供的各种数据备份方法。
参照图3,图3为本申请实施例的一种产品实现形态,主要包含了一种日志共享的分布式数据库的双集群容灾架构。数据库双集群分别部署在两个物理区域,运行时,本申请实施例提供的数据备份方法的程序代码运行于服务器的主机内存。以图3所示的应用场景为例,管控侧的客户端可以下发搭建集群、建立双集群的容灾关系、集群切换、集群状态查询等指令,集群内的OM模块接收到指令后,控制CM等模块和数据库节点完成相关操作,并返回执行结果。共享卷是具有远程(物理距离)并行复制数据能力的存储设备,用于在主备集群间同步传输redo日志。数据库集群运行时,主集群每个分片上的主节点产生日志并写入共享卷,同步到备集群对应的共享卷中,主集群和备集群的备数据节点从共享卷中读取日志并进行回放。
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
参照图4,图4为本申请实施例提供的一种数据备份方法的流程示意,其中,所述方法可以应用于第一数据库集群,所述第一数据库集群包括第一数据节点,所述方法包括:
401、所述第一数据节点获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息。
在一种可能的实现中,第一数据库集群可以为分布式数据库,第一数据库集群可以为主集群,第二数据库集群可以作为第一数据库集群的备份集群。
例如,第一数据库集群可以为基于数据分片的分布式架构(shared nothing架构)的数据库***,各个数据节点可以配置有中央处理器(central processing unit,CPU)、内存和硬盘等,各个存储节点之间不共享资源,第一数据节点可以为第一数据库集群中一个分片的一个数据节点,例如第一数据节点可以为第一数据库集群中一个分片的一个主数据节点。
在一种可能的实现中,第一数据节点可以为第一数据库集群中的数据节点DN。第一数据库集群可以部署有至少一个数据节点,其中协调节点可以被部署在计算设备上。数据节点可以被部署在计算设备上。多个协调节点可以分别部署在不同计算设备,或者可以部署在同一计算设备。多个数据节点可以分别部署在不同计算设备。协调节点与数据节点可以分别部署在不同计算设备,或者可以部署在同一计算设备。
在一种可能的实现中,数据可以分布在数据节点上,数据节点之间的数据不共享,在执行业务时,协调节点接收来自客户端的查询请求并生成执行计划下发到各个数据节点,数据节点根据接收到的计划对需要使用的算子(例如数据操作(stream)算子)进行初始化处理,然后执行协调节点下发的执行计划。协调节点与数据节点之间,以及不同物理节点中的数据节点之间可以通过网络通道进行连接,该网络通道可以是可扩展的传输控制协议(scalable transmission control protocol,STCP)等各种通信协议。
在一种可能的实现中,第一数据节点作为第一数据库集群中的主节点,可以接收来自客户端的数据操作请求,并根据数据操作请求生成第一物理日志,而作为第一数据节点的备份节点,第二数据节点(或者后续实施例中描述的第四数据节点)可以获取到第一物理日志,并根据第一物理日志进行日志回放,来保证第一数据节点和第二数据节点上数据的一致性。
在一种可能的实现中,所述第一物理日志包括对所述第一数据节点中数据的操作信息,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作,第一物理日志可以为Redo日志,也可以被称为XLog,其可以记录数据页的物理修改(或者描述为数据的变化情况),可以被用来恢复事务提交后的物理数据页。
在一种可能的实现中,数据库***中的日志文件可以包括逻辑日志文件和物理日志文件。逻辑日志文件中的逻辑日志用于记载对数据库***执行的逻辑操作的原始逻辑。例如,逻辑日志用于记载对数据库***执行的数据存取、数据删除、数据修改、数据查询、数据库***升级和数据库***管理等逻辑操作的原始逻辑。其中,逻辑操作是指根据用户的数据操作命令进行逻辑处理,确定需要对数据执行哪些数据操作的过程。并且,当数据操作命令使用结构化查询语言(structured query language,SQL)表示时,该逻辑操作的原始逻辑可以为使用SQL语句表示的计算机指令。物理日志文件中的物理日志用于记载数据库***中数据的变化情况(例如记载数据存储节点中数据页的变化)。该物理日志记录的内容可以理解为对数据库***执行逻辑操作所引起的数据变化。
应理解,在数据库初始前,并不区分第一数据库集群和第二数据库集群之间的主备关系,在数据库初始时,可以在两个Region内分别进行数据库的初始化,此时两个集群相互独立,不区分主备角色,分片内的节点均包含一个主节点和多个备数据节点。每个分片配置一个共享卷(即后续实施例中描述的第一存储设备以及第二存储设备中的存储空间),保证分片内的所有节点都具有该共享卷的访问权限,分片内的主节点产生日志并存储在对应分片的存储设备上,此时集群间的存储设备没有建立同步复制关系,不区分主从端。选择其中一个集群作为容灾备集群,停止该集群以防止该集群向共享盘写入数据,分别配置主备集群的相关参数信息,建立存储设备的远程复制关系,即数据由主集群的主端存储设备向备集群的从端存储设备进行同步复制。备集群通过网络向主集群进行build(重建)请求,完成数据和日志等的传输和复制,启动集群,容灾关系建立完成。
402、所述第一数据节点将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备。
在一种可能的实现中,第一数据节点在获取第一物理日志之后,可以将所述第一物理日志写入第一存储设备。
其中,第一存储设备和第二存储设备可以为全闪存存储***等物理设备。
在一种可能的实现中,所述第一存储设备为裸设备。其中,裸设备(raw device),也可以称之为裸分区(即原始分区),是一种没有经过格式化,不通过文件***来读取的设备文件。由应用程序负责对它进行读写操作。不经过文件***的缓冲。它是不***作***直接管理的设备。可以直接从数据节点的内存写到存储设备张红,少了从操作***缓存写到存储设备操作***缓存的步骤,I/O效率更高。第一数据节点可以基于直接I/O的方式将所述第一物理日志写入第一存储设备,提升了读写性能。
在一种可能的实现中,所述第一数据节点在将所述第一物理日志写入所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交。
其中,事务提交可以保证第一物理日志中对数据的操作信息持久化,若第一数据节点在完成第一物理日志的事务提交之后才将第一物理日志传递至第一存储设备,由于第一数据节点可能会出现事务提交还未完成就出现故障的情况,则会出现第一物理日志无法被传递至第一存储设备,也就是备数据节点无法获取到用于进行日志回放的第一物理日志,本申请实施例中,第一数据节点在对所述第一数据节点中的数据进行事务提交之前,就将第一物理日志传递至所述第一存储设备,将第一物理日志写入第一存储设备成功后,即可认为第一物理日志已复制到备数据节点,即使第一数据节点出现事务提交还未完成就出现故障的情况,也可以将第一物理日志传递至备数据节点。
在一种可能的实现中,第一数据节点可以将第一物理日志写入第一存储设备,第一存储设备上可以包括为第一数据节点划分出的存储区域(第一存储区域),以第一数据节点属于第一数据库集群中的第一分片为例,第一存储设备上可以包括为第一分片划分出的一个共享卷,第一分片中的各个数据节点可以共享该共享卷。具体的,所述第一存储设备可以包括用于存储所述第一数据节点的物理日志的第一存储空间以及用于存储所述第三数据节点的物理日志的第二存储空间,所述第一存储空间和所述第二存储空间不同。
在一种可能的实现中,所述第一数据库集群还包括第三数据节点,在所述第三数据节点将第二物理日志写入所述第一存储设备时,所述第一数据节点可以并行将所述第一物理日志写入第一存储设备。其中,第三数据节点可以为第一数据库集群中的主节点。具体的,可以在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
其中,由于为第一数据库集群中不同的主节点划分了不同的存储区域,进而可以支持不同的主节点之间并行执行物理日志的写入,提高了数据写入的并发性,进而提高了数据备份时日志的传输效率。
由于存储设备中的存储空间的大小有限,在一种可能的实现中,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间,第一数据节点基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间时,可以从所述第一存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志,并基于所述目标物理日志已被所述第二数据节点执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。也就是在第一存储空间的大小不足时,将第一存储空间中已经被占用的存储空间清空并重复使用,且为了防止备数据节点还未拿到物理日志时就被清空,第一数据节点清空的物理日志一定是备数据节点已经进行了日志回放的物理日志(该信息可以是备数据节点完成日志回放后反馈至第一数据节点的),通过上述方式,基于循环读写机制,在保证备数据节点可以拿到全部的物理日志的前提下,节省了存储设备的存储空间。
在一种可能的实现中,所述第一存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间,第一数据节点可以基于所述第一存储空间中所述尾部地址对应的存储空间被占用,从所述第一存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
参照图5,可以在存储设备的首部划分出一块区域(示例性的,大小为16MB)用于写入控制信息(control info),控制信息可以包含了校验码、日志写入位置、文件大小等信息。物理日志可以从16M之后的位置开始写入,物理日志存储区域可以被循环使用,当写入位置(head)更新到日志区域尾部(tail)时,则可以重新从16M的偏移位置处开始继续写入。主节点(例如第一数据节点)产生物理日志,并将物理日志从本地目录拷贝到存储设备上,写入的同时更新控制信息。物理日志写入存储设备上后,即认为日志持久化成功,之后再提交。但由于存储设备空间大小有限,未避免因为主机压力大,导致备机的物理日志还没读到本地而被覆盖掉,导致备机不可用,主机需要知道备机当前本地日志的最大日志序列号(log sequence number,LSN),根据此LSN可以判断是否能继续往存储设备上继续写入数据。因此,对于主机来说,如果有备集群节点连接,则保证至少有一个备集群节点拷贝日志之后,该处的日志才会被覆盖。
其中,每一条日志具有唯一的一个LSN,或者说,日志和LSN是一对一的,因此根据LSN能够唯一地确定出一条日志。
在一种可能的实现中,在所述第一数据节点根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交之后,所述第一数据节点还可以将包含提交信息的第二物理日志写入所述第一存储设备,所述第一存储设备用于将所述第二物理日志传递至第二存储设备,以便第二数据库集群中的管理节点从所述第二存储设备中获取所述第二物理日志,所述提交信息指示所述第一数据节点已完成所述第一物理日志的事务提交。其中提交信息可以被第二数据库集群在进行日志回放时作为全局一致性点的参考。
其中,提交信息可以包括事务提交号,事务提交号可以用于标识已提交的数据库事务(也称事务,transaction)。事务是数据存储节点执行数据库操作的逻辑单位,由一个数据库操作序列构成。事务处于已提交状态表明该事务已成功执行,且已将该事务涉及的数据写入到数据存储节点中。
在一种可能的实现中,所述第一数据库集群还包括第四数据节点,所述第四数据节点用于作为所述第一数据节点的备份节点,例如第四数据节点可以和第一数据节点同一个分片中的数据节点,且第四数据节点用于作为所述第一数据节点的备份节点,进而第四数据节点可以从所述第一存储设备中获取所述第一物理日志,并所述第四数据节点根据所述第一物理日志进行日志回放。
应理解,第四数据节点可以首先读取第一存储设备首部的控制信息,进行校验后,比较存储设备上的日志和本地物理日志的写入进度,如果存储设备上有更新的物理日志,则读取物理日志拷贝到本地,并进行回放,如果没有数据需要读取则循环等待。
在一种可能的实现中,第一存储设备和第二存储设备之间可以进行数据的同步复制,第一存储设备和第二存储设备可以为具有远程以及并行数据传输能力的存储设备。其中,第一存储设备可以将第一物理日志传递至第二存储设备。
在一种可能的实现中,所述第一存储设备可以包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同,第一存储设备可以将第一物理日志传递至第二存储设备中的第三存储空间。
403、第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志。
在一种可能的实现中,和第一数据库集群类似,第二数据库集群可以为分布式数据库,第一数据库集群可以为主集群,而第二数据库集群可以作为第一数据库集群的备份集群,例如,第二数据库集群可以为基于数据分片的分布式架构(shared nothing架构)的数据库***,各个数据节点可以配置有中央处理器(central processing unit,CPU)、内存和硬盘等,各个存储节点之间不共享资源,第二数据节点可以为第二数据库集群中一个分片的一个数据节点。
在一种可能的实现中,第二数据节点可以为第二数据库集群中的数据节点DN。第二数据库集群可以部署有至少一个数据节点,其中协调节点可以被部署在计算设备上。数据节点可以被部署在计算设备上。多个协调节点可以分别部署在不同计算设备,或者可以部署在同一计算设备。多个数据节点可以分别部署在不同计算设备。协调节点与数据节点可以分别部署在不同计算设备,或者可以部署在同一计算设备。
在一种可能的实现中,第一数据节点作为第一数据库集群中的主节点,可以接收来自客户端的数据操作请求,并根据数据操作请求生成第一物理日志,而作为第一数据节点的备份节点,第二数据节点可以从第二存储设备中获取到第一物理日志,并根据第一物理日志进行日志回放,来保证第一数据节点和第二数据节点上数据的一致性。具体的,第二数据节点可以从第三存储空间中获取到第一物理日志,其中,第三存储空间为第二存储设备中为第二数据节点分配的存储空间。
和第一存储设备类似,第二存储设备上可以包括为第二数据节点划分出的存储区域(第三存储区域),以第二数据节点属于第二数据库集群中的第一分片为例,第二存储设备上可以包括为第一分片划分出的一个共享卷,第一分片中的各个数据节点可以共享该共享卷。具体的,所述第二存储设备可以包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同。进而,和第一数据节点将第一物理日志写入第一存储设备时类似,所述第二数据节点可以在其他数据节点从第二存储设备中读取物理日志的同时,并行从所述第二存储设备中获取第一物理日志。
其中,所谓并行,可以理解为在时间上,第一数据节点将所述第一物理日志写入所述第一存储空间的动作和第三数据节点将物理日志写入所述第二存储空间的动作是同时发生的。
其中,由于为第二数据库集群中不同的主节点划分了不同的存储区域,进而可以支持不同的分片的备数据节点之间并行执行物理日志的读取,提高了数据读取的并发性,进而提高了数据备份时日志的传输效率。
在一种可能的实现中,所述第一数据库集群包括所述第一数据节点在内的多个数据节点,所述第二数据库集群还包括管理节点,所述管理节点还可以从所述第二存储设备中获取来自于所述第一数据库集群的提交信息,所述提交信息包括所述多个数据节点中每个数据节点最新完成事务提交的物理日志的日志序列号,所述目标序列号为所述多个所述日志序列号中最小的序列号;
现有技术采用了基于存储设备的分布式一致性机制,通过生成全局barrier日志,来确保找到不同分片公共的最远恢复点,但是无法解决存储设备出现网络问题导致数据同步失败的问题。
在一种可能的实现中,为了保证各个备数据节点之间的分布式一致性,需要保证各个备数据节点之间的日志回放进度相同,也就是回放的日志序列号LSN一致(日志序列号可以指示回放进度,序列号越大,则进度越靠前),本申请实施例中,第二数据库集群中的管理节点可以维护一个全局信息(该全局信息可以称之为barrier点),该全局信息可以各个备数据节点已获取到的物理日志的日志序列号,且该日志序列号为各个主节点当前已进行事务提交的最大物理日志序列号中最小的日志序列号,例如管理节点获取到:主节点1当前的事务提交进度为1、2,主节点2当前的事务提交进度为1、2,主节点3当前的事务提交进度为1、2、3,主节点4当前的事务提交进度为1、2、3、4,则3为管理节点所获取到的各个主节点当前已进行事务提交的最大物理日志序列号中最小的物理日志序列号。
在一种可能的实现中,所述多个主数据节点中的不同主数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交,也就是说,序列号可以指示主节点事务提交的进度。
应理解,上述管理节点可以为运维管理模块(operation manager,OM)、集群管理模块(cluster manager,CM)、集群管理代理(CM agent,CMA)、集群管理服务(CM Server,CMS)、全局事务管理器(global transaction manager,GTM)等。
其中,第一数据库集群中的协调节点可以获取到各个主数据节点当前的事务提交进度(即完成事务提交的物理日志的日志序列号,例如可称之为barrier点),并将包含该事务提交进度的提交信息以物理日志的形式传递至第二数据库集群(该步骤也可以是主数据节点完成的),备数据节点从第二存储设备获取到携带有提交信息的物理日志后,可以将物理日志写入本地磁盘,并对新落盘的物理日志进行解析,并将解析到的barrier点存储在哈希表中,并记录当前收到的最大barrier点,最大的barrier点即为主数据节点最新完成事务提交的物理日志的日志序列号,管理节点的功能可以为CMA、CMS、ETCD相互配合实现的,其中,CMA查询CN、DN的barrier最大值上报至CMS,CMS可以将各个备数据节点上的最大barrier点的最小值作为“候选序列号”(或者称之为待探测值),存入ETCD中;CMA从ETCD获取到“待探测值”,对DN进行查询,确认DN是否都存在该点(也就是确定多个备数据节点中的每个备数据节点是否已获取到所述候选序列号对应的物理日志),将结果上报给CMS,CMS进行如下判断:若该“待探测值”对应的物理日志在各个备数据节点都存在,则可以将其作为“目标序列号”(或者简称为目标值)点存入ETCD中,否则舍弃,CMA读取ETCD中的“目标值”,更新本地的“目标值”。在一次上报中,CMA需要查询执行barrier最大值的上报、本地查询“待探测值”是否存在,更新“目标值”这三步;CMS需要执行“待探测值”的更新和“目标值”的更新。Barrier删除是一致性的终点,Barrier删除发生在物理日志回放中,在日志回放时,回放到barrier点时会对回放位置进行更新,并在哈希表将该barrier点删除,从而完成barrier从生成到删除的全过程。
示例性的,在多分片场景下,存在多个共享存储设备的同步链路,为了确保在出现同步链路进度不一致的情况下,仍能确保分布式一致性。备集群需要得到目前各个分片当前最大barrier点里的最小barrier点(即多个主数据节点中每个主数据节点最新完成事务提交的物理日志的日志序列号),数据库备集可以恢复到最小barrier点。例如可以分为四个阶段:barrier生成、barrier解析存储、barrier推进、barrier删除。其中Barrier生成是一致性的前提,Barrier点可由任一CN节点发起,但由第一个CN负责生成。若发起barrier生成的CN不是第一个CN,则通知第一个CN进行生成。生成后CN和/或DN节点将其添加到物理日志中。Barrier解析存储是一致性的基础,备集群上对应的备数据节点通过存储设备收到日志后,将日志写入本地磁盘。首先对新落盘的日志进行解析,并将解析到的barrier点存储在哈希表中,并记录当前收到的最大barrier点。哈希表在创建日志解析线程前进行创建,在集群卸载时进行释放。哈希表中储存着解析出来的barrier点,这些barrier将在回放物理日志时进行删除。Barrier推进是一致性的关键,这部分可以通过CN、DN、CMA、CMS、ETCD相互配合进行,如图6所示。Barrier一致性点的推进可以包括五个周期:第一个周期CMA查询CN、DN的barrier最大值上报至CMS;CMS通过收齐比较的到其中的最小值作为“待探测值”,存入ETCD中;CMA从ETCD获取到“待探测值”,对CN、DN进行查询,确认DN是否都存在该点,将结果上报给CMS、CMS收齐后判断,若该“待探测值”各分片都确认存在,则作为“目标值”点存入ETCD中,否则舍弃;CMA读取ETCD中的“目标值”,更新本地的“目标值”。在一次上报中,CMA需要查询执行barrier最大值的上报、本地查询“待探测值”是否存在,更新“目标值”这三步;CMS需要执行“待探测值”的更新和“目标值”的更新。Barrier删除是一致性的终点,Barrier删除发生在物理日志回放中,在日志回放时,回放到barrier点时会对回放位置进行更新,并在哈希表将该barrier点删除,从而完成barrier从生成到删除的全过程。
本申请实施例中,基于第二数据库集群中的管理节点来维护一个目标序列号作为全局信息,该目标序列号为所述多个所述日志序列号中最小的序列号,且所述多个备数据节点中的每个备数据节点已获取到所述目标序列号对应的物理日志,各个备数据节点需要在当前待回放的物理日志对应的日志序列号等于目标序列号时才进行日志回放,保证了各个备数据节点回放到目标序列号为止,使得不同备数据节点均恢复到相同的位置,保证了分布式数据库内不同备数据节点间的数据的一致性。
404、所述第二数据节点根据所述第一物理日志进行日志回放。
在一种可能的实现中,所述第二数据节点从所述管理节点中获取所述目标序列号,所述第二数据节点在确定所述第一物理日志的日志序列号等于所述目标序列号之后,根据所述第一物理日志进行日志回放。
在第一数据库集群故障或用户手动调整的原因下,需要第二数据库集群变为主集群时,可以通过failover流程或者switchover流程来实现。
其中failover流程是在主集群发生异常的情况下,进行failover切换,即备集群升为主集群,继续提供生产服务。管控侧的客户端下发集群failover指令,检查存储设备的状态,如果状态正常,则可以进行RPO=0的切换;中断存储设备的同步关系,去除备集群存储设备的写保护,使得该存储设备可读写;停止备集群,对备集群的CN节点,将存储设备中的redo日志覆盖到本地日志;更新备集群etcd中存储的相关参数信息;OM修改CM、CN、DN的模式参数,按照主集群模式启动集群。
其中,switchover流程是在主备集群正常运行的情况下,由用户发起的有计划的集群角色切换,即主集群降为备集群,备集群升为主集群,代替原主集群提供生产服务。管控侧的客户端首先对主集群下发集群switchover指令,检查存储设备的状态,如果状态正常,则可以进行RPO=0的切换;关闭主集群,OM修改CM、CN、DN的模式参数,按照备集群模式启动集群;检查存储设备的状态,存储设备进行主从切换,即数据的复制方向为原备集群向原主集群进行同步传输;停止备集群,对备集群的CN节点,将存储设备中的redo日志覆盖到本地日志;OM修改CM、CN、DN的模式参数,按照主集群模式启动原备集群。
本申请实施例提供了一种数据备份方法,所述方法应用于第一数据库集群,所述第一数据库集群包括第一数据节点,所述方法包括:所述第一数据节点获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;所述第一数据节点将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点用于作为所述第一数据节点的备份节点。通过上述方式,第一数据库集群(主集群)中的数据节点可以通过存储设备将物理日志快速地同步到第二数据库集群(备集群),从而更接近于实现数据恢复点目标(recovery point objective,RPO)为0的目标,同时保证业务的高性能,提高了数据备份时的数据传输效率。
参照图7,图7为本申请实施例的一种第一数据库集群700的结构示意图,所述第一数据库集群700可以包括第一数据节点70,所述第一数据节点70可以包括:
日志获取模块701,用于获取第一物理日志,所述第一物理日志包括对所述第一数据节点70中数据的操作信息;
关于日志获取模块701的具体描述可以参照上述实施例中步骤401的描述,这里不再赘述。
在具体实现过程中,日志获取模块701可以由图2所示的处理器202,内存单元204来实现。更具体的,可以由处理器202执行内存单元204中相关代码以获取第一物理日志。
日志传递模块702,用于将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点80从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点80用于作为所述第一数据节点70的备份节点。
关于日志传递模块702的具体描述可以参照上述实施例中步骤402的描述,这里不再赘述。
在具体实现过程中,日志传递模块702可以由图2所示的处理器202,内存单元204和通信接口208来实现。更具体的,可以由处理器202执行内存单元204中的通信模块和备份模块,以使通信接口208将所述第一物理日志写入第一存储设备。
在一种可能的实现中,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
在一种可能的实现中,所述第一数据节点70还包括:
事务提交模块703,用于在将所述第一物理日志传递至所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点70中的数据进行事务提交。
在一种可能的实现中,所述第一数据库集群还包括第三数据节点;所述日志传递模块702,具体用于:
在所述第三数据节点将第二物理日志写入所述第一存储设备时,并行将所述第一物理日志写入第一存储设备。
在一种可能的实现中,所述第一存储设备包括用于存储物理日志的存储空间,所述日志传递模块702,具体用于:
基于所述存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志;
基于所述目标物理日志已被所述第二数据节点80执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。
在一种可能的实现中,所述存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序被配置为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间;
所述日志传递模块702,具体用于:
基于所述存储空间中所述尾部地址对应的存储空间被占用,从所述存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
在一种可能的实现中,所述第一存储设备为裸设备。
在一种可能的实现中,所述日志传递模块702,还用于:
在所述第一数据节点70根据所述第一物理日志,对所述第一数据节点70中的数据进行事务提交之后,所述第一数据节点70将包含提交信息的第二物理日志写入所述第一存储设备,所述第一存储设备用于将所述第二物理日志传递至第二存储设备,以便第二数据库集群中的管理节点从所述第二存储设备中获取所述第二物理日志,所述提交信息指示所述第一数据节点70已完成所述第一物理日志的事务提交。
在一种可能的实现中,所述第一数据库集群还包括第四数据节点,所述第四数据节点用于作为所述第一数据节点70的备份节点,所述第四数据节点包括:日志获取模块,用于从所述第一存储设备中获取所述第一物理日志;
日志回放模块,用于根据所述第一物理日志进行日志回放。
参照图8,图8为本申请实施例的一种第二数据库集群800的结构示意图,所述第二数据库集群800可以包括第二数据节点80,所述第二数据节点80用于作为第一数据节点70的备份节点,所述第一数据节点70属于第一数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,第一存储设备部署于所述第一数据库集群,第二存储设备部署于所述第二数据库集群,所述第二数据节点80,包括:
日志获取模块801,用于从所述第二存储设备中获取第一物理日志,所述第一物理日志为来自所述第一数据节点70并经由所述第一存储设备传递而存储在所述第二存储设备中的物理日志,所述第一物理日志包括对所述第一数据节点70中数据的操作信息;
关于日志获取模块801的具体描述可以参照上述实施例中步骤403的描述,这里不再赘述。
在具体实现过程中,日志获取模块801可以由图2所示的处理器202,内存单元204和通信接口208来实现。更具体的,可以由处理器202执行内存单元204中的通信模块,以使通信接口208从所述第二存储设备中获取第一物理日志。
日志回放模块802,用于根据所述第一物理日志进行日志回放。
关于日志回放模块802的具体描述可以参照上述实施例中步骤404的描述,这里不再赘述。
在一种可能的实现中,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
在一种可能的实现中,所述第二数据库集群还包括第五数据节点;所述日志获取模块,具体用于:
在所述第五数据节点从所述第二存储设备中获取物理日志时,所述第二数据节点80并行从所述第二存储设备中获取第一物理日志。
在一种可能的实现中,所述第一数据库集群包括所述第一数据节点70在内的多个数据节点,所述第二数据库集群还包括管理节点,所述管理节点包括:
提交信息获取模块,用于从所述第二存储设备中获取来自于所述第一数据库集群的提交信息,所述提交信息包括所述多个数据节点中每个数据节点最新完成事务提交的物理日志的日志序列号,所述目标序列号为所述多个所述日志序列号中最小的序列号;
所述日志回放模块,具体用于所述第二数据节点80从所述管理节点中获取所述目标序列号;
在确定所述第一物理日志的日志序列号等于所述目标序列号之后,根据所述第一物理日志进行日志回放。
在一种可能的实现中,所述多个主数据节点中的不同主数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交。
本申请实施例还提供了一种计算设备,该计算设备可以为上述实施例中描述的第一数据库集群中的节点或者第二数据库集群中的节点。该计算设备可以为服务器或终端等。前述数据库管理节点和/或数据存储节点可以部署在该计算设备中。如图9所示,该计算设备90包括:处理器901,通信接口902和存储器903。处理器901,通信接口902和存储器903之间通过总线904相互连接。
存储器903用于存储计算机指令。处理器901执行存储器903中的计算机指令时,能够实现该计算机指令的功能。例如,处理器901执行存储器903中的计算机指令时,能够实现本申请实施例提供的数据恢复方法。又例如,当数据库管理节点部署在计算机设备中时,处理器901执行存储器903中的计算机指令时,能够实现本申请实施例提供的数据备份方法中第一数据节点、第四数据节点的功能。再例如,当数据存储节点部署在计算机设备中时,处理器901执行存储器903中的计算机指令时,能够实现本申请实施例提供的数据备份方法中第二数据节点的功能。
在图9中,总线904可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在图9中,处理器901可以是硬件芯片,该硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。或者,也可以是通用处理器,例如,中央处理器(central processing unit,CPU),网络处理器(networkprocessor,NP),或者,CPU和NP的组合。
在图9中,存储器903可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD)。还可以包括上述种类的存储器的组合。
本申请实施例还提供了一种存储介质,该存储介质为非易失性计算机可读存储介质,存储介质中的指令用于实现本申请实施例提供的数据备份方法。
本申请实施例还提供了一种包含指令的计算机程序产品,计算机程序产品包括的指令用于实现本申请实施例提供的数据备份方法。该计算机程序产品可以存储该存储介质上。
本申请实施例还提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现本申请实施例提供的数据备份方法。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例该的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (28)
1.一种数据备份方法,其特征在于,所述方法应用于第一数据库集群,所述第一数据库集群包括第一数据节点,所述方法包括:
所述第一数据节点获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
所述第一数据节点将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点用于作为所述第一数据节点的备份节点。
2.根据权利要求1所述的方法,其特征在于,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一数据节点在将所述第一物理日志写入所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交。
4.根据权利要求1至3任一所述的方法,其特征在于,所述第一数据库集群还包括第三数据节点;所述第一数据节点将所述第一物理日志写入第一存储设备,包括:
在所述第三数据节点将第二物理日志写入所述第一存储设备时,所述第一数据节点并行将所述第一物理日志写入所述第一存储设备。
5.根据权利要求4所述的方法,其特征在于,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间以及用于存储所述第三数据节点的物理日志的第二存储空间,所述第一存储空间和所述第二存储空间不同;
所述在所述第三数据节点将第二物理日志写入所述第一存储设备时,所述第一数据节点并行将所述第一物理日志写入第一存储设备,包括:
在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
6.根据权利要求1至5任一所述的方法,其特征在于,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间,所述将所述第一物理日志写入第一存储设备,包括:
基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述第一存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志;
基于所述目标物理日志已被所述第二数据节点执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。
7.根据权利要求6所述的方法,其特征在于,所述第一存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间;
所述基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述第一存储空间中确定目标存储空间,包括:
基于所述第一存储空间中所述尾部地址对应的存储空间被占用,从所述第一存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
在所述第一数据节点根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交之后,所述第一数据节点将包含提交信息的第二物理日志写入所述第一存储设备,所述第一存储设备用于将所述第二物理日志传递至第二存储设备,以便第二数据库集群中的管理节点从所述第二存储设备中获取所述第二物理日志,所述提交信息指示所述第一数据节点已完成所述第一物理日志的事务提交。
9.根据权利要求1至8任一所述的方法,其特征在于,所述第一数据库集群还包括第四数据节点,所述第四数据节点用于作为所述第一数据节点的备份节点,所述方法还包括:
所述第四数据节点从所述第一存储设备中获取所述第一物理日志;
所述第四数据节点根据所述第一物理日志进行日志回放。
10.一种数据备份方法,其特征在于,所述方法应用于第二数据库集群,所述第二数据库集群包括第二数据节点,所述第二数据节点用于作为第一数据节点的备份节点,所述第一数据节点属于第一数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,第一存储设备部署于所述第一数据库集群,第二存储设备部署于所述第二数据库集群,所述方法包括:
所述第二数据节点从所述第二存储设备中获取第一物理日志,所述第一物理日志为来自所述第一数据节点并经由所述第一存储设备传递而存储在所述第二存储设备中的物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
所述第二数据节点根据所述第一物理日志进行日志回放。
11.根据权利要求10所述的方法,其特征在于,所述操作信息指示对所述数据节点中数据的修改操作、写入操作和/或删除操作。
12.根据权利要求10或11所述的方法,其特征在于,所述第二数据库集群还包括第五数据节点;所述第二数据节点从所述第二存储设备中获取第一物理日志,包括:
在所述第五数据节点从所述第二存储设备中获取物理日志时,所述第二数据节点并行从所述第二存储设备中获取第一物理日志。
13.根据权利要求12所述的方法,其特征在于,所述第二存储设备包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同;
所述在所述第五数据节点从所述第二存储设备中获取物理日志时,所述第二数据节点并行从所述第二存储设备中获取第一物理日志,包括:
在所述第五数据节点从所述第四存储空间中获取物理日志时,所述第二数据节点并行从所述第三存储空间中获取第一物理日志。
14.根据权利要求10至13任一所述的方法,其特征在于,所述第一数据库集群包括所述第一数据节点在内的多个主数据节点,所述第二数据库集群包括所述第二数据节点在内的多个备数据节点,所述第二数据库集群还包括管理节点,所述方法还包括:
所述管理节点从所述第二存储设备中获取来自于所述第一数据库集群的提交信息,所述提交信息包括所述多个主数据节点中每个主数据节点最新完成事务提交的物理日志的日志序列号,所述目标序列号为所述多个所述日志序列号中最小的序列号,且所述多个备数据节点中的每个备数据节点已获取到所述目标序列号对应的物理日志;
所述第二数据节点根据所述第一物理日志进行日志回放,包括:
所述第二数据节点从所述管理节点中获取所述目标序列号;
所述第二数据节点在确定所述第一物理日志的日志序列号等于所述目标序列号之后,根据所述第一物理日志进行日志回放。
15.根据权利要求14所述的方法,其特征在于,所述多个主数据节点中的不同数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交。
16.一种第一数据库集群,其特征在于,所述第一数据库集群包括第一数据节点,所述第一数据节点包括:
日志获取模块,用于获取第一物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
日志传递模块,用于将所述第一物理日志写入第一存储设备,所述第一存储设备用于将所述第一物理日志传递至第二存储设备,以便第二数据库集群中的第二数据节点从所述第二存储设备中获取所述第一物理日志,其中,所述第一存储设备部署于所述第一数据库集群,所述第二存储设备部署于所述第二数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,所述第二数据节点用于作为所述第一数据节点的备份节点。
17.根据权利要求16所述的第一数据库集群,其特征在于,所述第一数据节点还包括:
事务提交模块,用于在将所述第一物理日志传递至所述第一存储设备之后,根据所述第一物理日志,对所述第一数据节点中的数据进行事务提交。
18.根据权利要求16或17所述的第一数据库集群,其特征在于,所述第一数据库集群还包括第三数据节点;所述日志传递模块,具体用于:
在所述第三数据节点将第二物理日志写入所述第一存储设备时,并行将所述第一物理日志写入第一存储设备。
19.根据权利要求18所述的第一数据库集群,其特征在于,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间以及用于存储所述第三数据节点的物理日志的第二存储空间,所述第一存储空间和所述第二存储空间不同;
所述日志传递模块,具体用于:
在所述第三数据节点将第二物理日志写入所述第二存储空间时,所述第一数据节点并行将所述第一物理日志写入所述第一存储空间。
20.根据权利要求16至19任一所述的第一数据库集群,其特征在于,所述第一存储设备包括用于存储所述第一数据节点的物理日志的第一存储空间,所述日志传递模块,具体用于:
基于所述第一存储空间中可用的存储空间小于所述第一物理日志所需的存储空间,从所述第一存储空间中确定目标存储空间,所述目标存储空间存储有目标物理日志;
基于所述目标物理日志已被所述第二数据节点执行日志回放,将所述目标存储空间中的目标物理日志替换为所述第一物理日志。
21.根据权利要求20所述的第一数据库集群,其特征在于,所述第一存储空间的存储地址包括头部地址和尾部地址,所述存储空间的存储顺序为从所述头部地址对应的存储空间到所述尾部地址对应的存储空间;
所述日志传递模块,具体用于:
基于所述第一存储空间中所述尾部地址对应的存储空间被占用,从所述第一存储空间中确定所述头部地址对应的存储空间为所述目标存储空间。
22.一种第二数据库集群,其特征在于,所述第二数据库集群包括第二数据节点,所述第二数据节点用于作为第一数据节点的备份节点,所述第一数据节点属于第一数据库集群,所述第一数据库集群和所述第二数据库集群为不同的数据库集群,第一存储设备部署于所述第一数据库集群,第二存储设备部署于所述第二数据库集群,所述第二数据节点,包括:
日志获取模块,用于从所述第二存储设备中获取第一物理日志,所述第一物理日志为来自所述第一数据节点并经由所述第一存储设备传递而存储在所述第二存储设备中的物理日志,所述第一物理日志包括对所述第一数据节点中数据的操作信息;
日志回放模块,用于根据所述第一物理日志进行日志回放。
23.根据权利要求22所述的第二数据库集群,其特征在于,所述第二数据库集群还包括第四数据节点;所述日志获取模块,具体用于:
在所述第五数据节点从所述第二存储设备中获取物理日志时,所述第二数据节点并行从所述第二存储设备中获取第一物理日志。
24.根据权利要求23所述的第二数据库集群,其特征在于,所述第二存储设备包括用于存储所述第二数据节点的物理日志的第三存储空间以及用于存储所述第五数据节点的物理日志的第四存储空间,所述第三存储空间和所述第四存储空间不同;
所述日志获取模块,具体用于:
在所述第五数据节点从所述第四存储空间中获取物理日志时,所述第二数据节点并行从所述第三存储空间中获取第一物理日志。
25.根据权利要求22至24任一所述的第二数据库集群,其特征在于,所述第一数据库集群包括所述第一数据节点在内的多个主数据节点,所述第二数据库集群包括所述第二数据节点在内的多个备数据节点,所述第二数据库集群还包括管理节点,所述管理节点包括:
提交信息获取模块,用于从所述第二存储设备中获取来自于所述第一数据库集群的提交信息,所述提交信息包括所述多个主数据节点中每个主数据节点最新完成事务提交的物理日志的日志序列号,所述目标序列号为所述多个所述日志序列号中最小的序列号,且所述多个备数据节点中的每个备数据节点已获取到所述目标序列号对应的物理日志;
所述日志回放模块,具体用于所述第二数据节点从所述管理节点中获取所述目标序列号;
在确定所述第一物理日志的日志序列号等于所述目标序列号之后,根据所述第一物理日志进行日志回放。
26.根据权利要求25所述的第二数据库集群,其特征在于,所述多个主数据节点中的不同主数据节点上相同序列号的物理日志对应于同一个任务,且所述多个主数据节点中各个主数据节点基于序列号由小到大的顺序对物理日志进行事务提交。
27.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行权利要求1至15任一项所述的方法。
28.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至15任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117550.8A CN115858236A (zh) | 2021-09-23 | 2021-09-23 | 一种数据备份方法和数据库集群 |
PCT/CN2022/120709 WO2023046042A1 (zh) | 2021-09-23 | 2022-09-23 | 一种数据备份方法和数据库集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117550.8A CN115858236A (zh) | 2021-09-23 | 2021-09-23 | 一种数据备份方法和数据库集群 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858236A true CN115858236A (zh) | 2023-03-28 |
Family
ID=85652386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111117550.8A Pending CN115858236A (zh) | 2021-09-23 | 2021-09-23 | 一种数据备份方法和数据库集群 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115858236A (zh) |
WO (1) | WO2023046042A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760693A (zh) * | 2023-08-18 | 2023-09-15 | 天津南大通用数据技术股份有限公司 | 一种数据库主备节点倒换的方法及*** |
CN117033087A (zh) * | 2023-10-10 | 2023-11-10 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
CN117194566A (zh) * | 2023-08-21 | 2023-12-08 | 泽拓科技(深圳)有限责任公司 | 多存储引擎数据复制方法、***、计算机设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171266B (zh) * | 2023-08-28 | 2024-05-14 | 北京逐风科技有限公司 | 一种数据同步方法、装置、设备和存储介质 |
CN116955015B (zh) * | 2023-09-19 | 2024-01-23 | 恒生电子股份有限公司 | 基于数据存储服务的数据备份***及方法 |
CN117667515A (zh) * | 2023-12-08 | 2024-03-08 | 广州鼎甲计算机科技有限公司 | 主备集群的备份管理方法、装置、计算机设备及存储介质 |
CN117857568A (zh) * | 2023-12-25 | 2024-04-09 | 慧之安信息技术股份有限公司 | 基于云边协同的边缘设备增容配置方法和*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936545B1 (en) * | 2013-12-20 | 2021-03-02 | EMC IP Holding Company LLC | Automatic detection and backup of primary database instance in database cluster |
CN106570007A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 用于分布式缓存***数据同步的方法和设备 |
CN110377577B (zh) * | 2018-04-11 | 2022-03-04 | 北京嘀嘀无限科技发展有限公司 | 数据同步方法、装置、***和计算机可读存储介质 |
CN112905390A (zh) * | 2021-03-31 | 2021-06-04 | 恒生电子股份有限公司 | 日志数据备份方法、装置、设备及存储介质 |
-
2021
- 2021-09-23 CN CN202111117550.8A patent/CN115858236A/zh active Pending
-
2022
- 2022-09-23 WO PCT/CN2022/120709 patent/WO2023046042A1/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760693A (zh) * | 2023-08-18 | 2023-09-15 | 天津南大通用数据技术股份有限公司 | 一种数据库主备节点倒换的方法及*** |
CN116760693B (zh) * | 2023-08-18 | 2023-10-27 | 天津南大通用数据技术股份有限公司 | 一种数据库主备节点倒换的方法及*** |
CN117194566A (zh) * | 2023-08-21 | 2023-12-08 | 泽拓科技(深圳)有限责任公司 | 多存储引擎数据复制方法、***、计算机设备 |
CN117194566B (zh) * | 2023-08-21 | 2024-04-19 | 泽拓科技(深圳)有限责任公司 | 多存储引擎数据复制方法、***、计算机设备 |
CN117033087A (zh) * | 2023-10-10 | 2023-11-10 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
CN117033087B (zh) * | 2023-10-10 | 2024-01-19 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2023046042A1 (zh) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263173B2 (en) | Transaction log index generation in an enterprise backup system | |
US11836155B2 (en) | File system operation handling during cutover and steady state | |
CN115858236A (zh) | 一种数据备份方法和数据库集群 | |
CN110392876B (zh) | 用于将数据集和其他受管理对象同步地复制到基于云的存储***的方法 | |
US10114581B1 (en) | Creating a virtual access point in time on an object based journal replication | |
JP4477950B2 (ja) | リモートコピーシステム及び記憶装置システム | |
US9679039B1 (en) | Continuous protection of data and storage management configuration | |
US8788772B2 (en) | Maintaining mirror and storage system copies of volumes at multiple remote sites | |
US7299378B2 (en) | Geographically distributed clusters | |
JP4461147B2 (ja) | リモートデータミラーリングを用いたクラスタデータベース | |
US20040260736A1 (en) | Method, system, and program for mirroring data at storage locations | |
US20040260899A1 (en) | Method, system, and program for handling a failover to a remote storage location | |
US7761431B2 (en) | Consolidating session information for a cluster of sessions in a coupled session environment | |
CN111078667B (zh) | 一种数据迁移的方法以及相关装置 | |
US11032156B1 (en) | Crash-consistent multi-volume backup generation | |
US10452680B1 (en) | Catch-up replication with log peer | |
US11579983B2 (en) | Snapshot performance optimizations | |
WO2017122060A1 (en) | Parallel recovery for shared-disk databases | |
US11461192B1 (en) | Automatic recovery from detected data errors in database systems | |
WO2024051027A1 (zh) | 一种大数据的数据配置方法和*** | |
US11307933B2 (en) | Automated targetless snapshots | |
US20220100393A1 (en) | Direct snapshot to external storage | |
US11698884B2 (en) | File level incremental continuous data protection | |
US11681592B2 (en) | Snapshots with selective suspending of writes | |
US11265374B2 (en) | Cloud disaster recovery |
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 |