CN114706832A - 一种数据重分布方法、装置、设备及存储介质 - Google Patents

一种数据重分布方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114706832A
CN114706832A CN202210355045.5A CN202210355045A CN114706832A CN 114706832 A CN114706832 A CN 114706832A CN 202210355045 A CN202210355045 A CN 202210355045A CN 114706832 A CN114706832 A CN 114706832A
Authority
CN
China
Prior art keywords
migrated
log
file
target
log file
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
Application number
CN202210355045.5A
Other languages
English (en)
Inventor
韩朱忠
郭振岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Dameng Database Co Ltd
Original Assignee
Shanghai Dameng Database Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Dameng Database Co Ltd filed Critical Shanghai Dameng Database Co Ltd
Priority to CN202210355045.5A priority Critical patent/CN114706832A/zh
Publication of CN114706832A publication Critical patent/CN114706832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据重分布方法、装置、设备及存储介质,该方法包括:确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点;将待迁移表空间中的数据文件拷贝到目标节点中;将待迁移表空间对应的日志文件发送到目标节点并重演。本发明提供了一种简单高效的数据重分布方法,通过在线迁移,联机拷贝表空间数据文件,重演迁移过程中用户产生的日志文件的方式,使得在迁移过程中,用户还能继续访问并修改表空间内表的数据,几乎不受到表空间迁移所带来的影响。

Description

一种数据重分布方法、装置、设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据重分布方法、装置、设备及存储介质。
背景技术
通常分布式数据库系统在节点个数发生变动的情况下,为了能够充分利用系统内的节点资源,达到数据存储的均衡,提高资源利用率和整体性能,需要根据数据表的分布属性,对原有的数据进行数据重分布。
在现有技术中,通常按照一定的算法,例如哈希一致性算法,进行数据重分布。在现有的数据重分布过程中,会扫描待迁移的表内数据并重新计算表内每一行数据的目标节点,然后进行分发,过程繁杂且耗时,影响总体效率。
发明内容
本发明提供了一种数据重分布方法、装置、设备及存储介质,以实现简单高效地完成数据重分布的目的。
根据本发明的一方面,提供了一种数据重分布方法,包括:
确定待迁移表空间及所述待迁移表空间所在的源节点与将要迁移到的目标节点;
将所述待迁移表空间中的数据文件拷贝到所述目标节点中;
将所述待迁移表空间对应的日志文件发送到所述目标节点并重演。
进一步地,将所述待迁移表空间中的数据文件拷贝到所述目标节点中,包括:
封锁所述待迁移表空间及所述待迁移表空间中的各个表;
在所述源节点上获取所述待迁移表空间的定义,根据所述定义在所述目标节点上创建新表空间;
将所述待迁移表空间中的数据文件拷贝到所述新表空间中。
进一步地,封锁所述待迁移表空间及所述待迁移表空间中的各个表,包括:
利用排他锁封锁所述待迁移表空间;
获取所述各个表中的分区表,利用意向共享锁封锁所述分区表中的主表,利用意向排他锁封锁所述分区表中的子表及所述待迁移表空间的其余表。
进一步地,将所述待迁移表空间对应的日志文件发送到所述目标节点并重演,包括:
获取所述待迁移表空间中的数据文件拷贝期间的第一目标日志文件;
将所述第一目标日志文件发送到所述目标节点,并根据所述第一目标日志文件对所述目标节点中的数据文件执行相应操作;
获取所述第一目标日志文件重演期间的第二目标日志文件;
将所述第二目标日志文件发送到所述目标节点,并根据所述第二目标日志文件对所述目标节点中的数据文件执行相应操作。
进一步地,获取所述待迁移表空间中的数据文件拷贝期间的第一目标日志文件,包括:
获取所述待迁移表空间中的数据文件开始拷贝时刻的检查点日志序列号,并将所述检查点日志序列号确定为起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为结束日志序列号;
将日志序列号大于等于所述起始日志序列号且小于等于所述结束日志序列号的日志文件确定为所述第一目标日志文件。
进一步地,获取所述第一目标日志文件重演期间的第二目标日志文件,包括:
利用共享锁封锁所述待迁移表空间中的各个表;
将所述结束日志序列号确定为新的起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为新的结束日志序列号;
将日志序列号大于等于所述新的起始日志序列号且小于等于所述新的结束日志序列号的日志文件确定为所述第二目标日志文件。
进一步地,将所述待迁移表空间对应的日志文件发送到所述目标节点并重演之后,还包括:
修改元数据节点中的节点字典信息。
进一步地,修改元数据节点中的节点字典信息,包括:
利用排他锁封锁所述待迁移表空间中的各个表;
将所述节点字典信息中所述待迁移表空间所在的节点修改为所述目标节点;
移除所述待迁移表空间上的字典缓存信息,并删除所述源节点上的所述待迁移表空间。
根据本发明的另一方面,提供了一种数据重分布装置,包括:
待迁移表空间及源节点与目标节点确定模块,用于确定待迁移表空间及所述待迁移表空间所在的源节点与将要迁移到的目标节点;
数据文件拷贝模块,用于将所述待迁移表空间中的数据文件拷贝到所述目标节点中;
日志文件发送并重演模块,用于将所述待迁移表空间对应的日志文件发送到所述目标节点并重演。
可选的,数据文件拷贝模块还用于:
封锁所述待迁移表空间及所述待迁移表空间中的各个表;
在所述源节点上获取所述待迁移表空间的定义,根据所述定义在所述目标节点上创建新表空间;
将所述待迁移表空间中的数据文件拷贝到所述新表空间中。
可选的,数据文件拷贝模块还用于:
利用排他锁封锁所述待迁移表空间;
获取所述各个表中的分区表,利用意向共享锁封锁所述分区表中的主表,利用意向排他锁封锁所述分区表中的子表及所述待迁移表空间的其余表。
可选的,日志文件发送并重演模块还用于:
获取所述待迁移表空间中的数据文件拷贝期间的第一目标日志文件;
将所述第一目标日志文件发送到所述目标节点,并根据所述第一目标日志文件对所述目标节点中的数据文件执行相应操作;
获取所述第一目标日志文件重演期间的第二目标日志文件;
将所述第二目标日志文件发送到所述目标节点,并根据所述第二目标日志文件对所述目标节点中的数据文件执行相应操作。
可选的,日志文件发送并重演模块还用于:
获取所述待迁移表空间中的数据文件开始拷贝时刻的检查点日志序列号,并将所述检查点日志序列号确定为起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为结束日志序列号;
将日志序列号大于等于所述起始日志序列号且小于等于所述结束日志序列号的日志文件确定为所述第一目标日志文件。
可选的,日志文件发送并重演模块还用于:
利用共享锁封锁所述待迁移表空间中的各个表;
将所述结束日志序列号确定为新的起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为新的结束日志序列号;
将日志序列号大于等于所述新的起始日志序列号且小于等于所述新的结束日志序列号的日志文件确定为所述第二目标日志文件。
可选的,数据重分布装置还包括节点字典信息修改模块,用于修改元数据节点中的节点字典信息。
可选的,节点字典信息修改模块还用于:
利用排他锁封锁所述待迁移表空间中的各个表;
将所述节点字典信息中所述待迁移表空间所在的节点修改为所述目标节点;
移除所述待迁移表空间上的字典缓存信息,并删除所述源节点上的所述待迁移表空间。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据重分布方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据重分布方法。
本发明实施例首先确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点,然后将待迁移表空间中的数据文件拷贝到目标节点中,最后将待迁移表空间对应的日志文件发送到目标节点并重演。本发明实施例提供的数据重分布方法,通过在线迁移,联机拷贝表空间数据文件,重演迁移过程中用户产生的日志文件的方式,使得在迁移过程中,用户还能继续访问并修改表空间内表的数据,几乎不受到表空间迁移所带来的影响,实现了简单高效的技术效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种数据重分布方法的流程图;
图2是根据本发明实施例二提供的一种数据重分布方法的流程图;
图3为根据本发明实施例三提供的一种数据重分布装置的结构示意图;
图4是实现本发明实施例四的数据重分布方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种数据重分布方法的流程图,本实施例可适用于利用两个或两个以上传感器进行目标跟踪的情况,该方法可以由数据重分布装置来执行,该数据重分布装置可以采用硬件和/或软件的形式实现,该数据重分布装置可配置于电子设备中。如图1所示,该方法包括:
S110、确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点。
在数据库中,表空间(Table Space,TS)由一个或者多个数据文件组成,数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中,表空间可作为数据的可移动单元,用于快速在数据存储节点(Backend Processor,BP)间以文件方式迁移子表。数据存储节点为用户数据实际存储节点,一个集群有多个BP,支持动态增删。
在本实施例中,在BP个数发生变化的情况下,需要对分布式系统中的节点数据进行迁移,即重分布,待迁移表空间可以是需要进行数据迁移的BP上的表空间。进一步地,源节点可以是待迁移表空间在迁移之前所在的BP,目标节点可以是待迁移表空间在迁移之后所在的BP。
可选的,重分布可以有两种类型的表空间迁移方式,一种为只读方式,另一种为可读写方式。只读方式在表空间迁移的过程中,用户只能对表空间包含的表进行读操作,不能进行写操作;可读写方式在迁移的过程中,用户大部分时间,比如在文件拷贝的过程中仍然能对表空间包含的表进行写操作,只在最后切换节点的短时间内将其他用户对表空间内表的写操作阻塞。可读写操作对系统的影响更小,对用户更友好。
举例说明,若要将节点BP1上的表空间TS1迁移到节点BP2上,则用户执行的SQL语句为:alter tablespace TS1 move to BP2,其中,待迁移表空间为TS1,源节点为BP1,目标节点为BP2。
S120、将待迁移表空间中的数据文件拷贝到目标节点中。
在本实施例中,根据已知的待迁移表空间以及对应的目标节点,可以将待迁移表空间迁移至目标节点,在物理上表现为将所属待迁移表空间中的数据文件拷贝到目标节点中。优选地,待迁移表空间可以是源节点上的整个表空间。
可选的,将待迁移表空间中的数据文件拷贝到目标节点中的方式可以是:封锁待迁移表空间及待迁移表空间中的各个表;在源节点上获取待迁移表空间的定义,根据定义在目标节点上创建新表空间;将待迁移表空间中的数据文件拷贝到新表空间中。
具体的,待迁移表空间中可能包含多个表,在进行数据文件拷贝时,为防止多个共同访问共享数据的事务之间的破坏性交互,包括不正确地更新数据或不正确地更改基础数据结构等,可以利用数据库的锁机制,对待迁移表空间及待迁移表空间中的各个表进行封锁。借助锁机制,可以避免待迁移表空间的定义被修改,然后可以到源节点上获取待迁移表空间的定义,再根据获取的定义在目标节点上创建与待迁移表空间相同的新表空间,最后拷贝待迁移表空间的所有数据文件,即从源节点上拷贝到目标节点上。优选地,拷贝数据时可以采用多线程并行拷贝的方式,提升迁移效率。
进一步地,封锁待迁移表空间及待迁移表空间中的各个表的方式可以是:利用排他锁封锁待迁移表空间;获取各个表中的分区表,利用意向共享锁封锁分区表中的主表,利用意向排他锁封锁分区表中的子表及待迁移表空间的其余表。
通常数据库管理系统可以提供4种封锁类型,分别是共享锁(S)、排他锁(X)、意向共享锁(IS)和意向排它锁(IX),其中IS/IS、IS/IX、IS/S、IX/IX类型的锁是兼容的,IX锁与S锁是不兼容的,X锁与IS/IX/S/X类型的锁都是不兼容的。可以将4种封锁类型的兼容特性以矩阵表示:
Figure BDA0003582163800000091
其中,1表示两种锁类型兼容,0表示不兼容,会发生锁等待。
具体的,在封锁待迁移表空间及待迁移表空间中的各个表的时候,可以X封锁待迁移表空间,然后对待迁移表空间中的分区表中的主表IS封锁,保证主表不被删除,并对分区表中的子表及待迁移表空间的其余表IX封锁,防止表定义被修改。上了IX或IS锁,不同事务可以同时增、删、改、查表中的数据,但不允许修改表的定义。
S130、将待迁移表空间对应的日志文件发送到目标节点并重演。
其中,日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志,具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
在本实施例中,将待迁移表空间中的数据文件拷贝到目标节点中之后,可以将内存中所有日志归档入日志文件中,然后发送归档日志到目标节点并重演日志。重演日志为根据日志内容修改数据页,即日志文件中记录了相应的表空间中对数据文件进行的各操作,可以根据日志文件记录的内容对拷贝到目标节点的数据执行同样的操作。
可选的,将待迁移表空间对应的日志文件发送到目标节点并重演之后,还可以:修改元数据节点中的节点字典信息。
其中,表空间创建后,建表信息就保存到数据字典中,字典信息可以储存数据库元数据信息,例如表的创建者、创建时间、表空间所在节点的索引等信息。元数据节点(Metadata Processor,MP)为字典信息的存储和管理节点。
在本实施例中,当完成待迁移表空间的数据文件拷贝后,其所在的数据存储节点发生了改变,相应的,应当修改元数据节点中的节点字典信息。
可选的,修改元数据节点中的节点字典信息的方式可以是:利用排他锁封锁待迁移表空间中的各个表;将节点字典信息中待迁移表空间所在的节点修改为目标节点;移除待迁移表空间上的字典缓存信息,并删除源节点上的待迁移表空间。
具体的,可以对待迁移表空间内的所有表X封锁,使字典切换前短时间不允许读写,除了迁移事务之外,不允许其他事务修改和访问该对象。然后修改MP上记录的待迁移表空间所在节点的字典信息,将源节点换成目标节点。再将待迁移表空间上所有涉及的表对象字典缓存信息移除,清理这些表对象涉及的在计划缓存中的计划,最后删除源节点上的待迁移表空间。上述步骤完成后,进行事务提交,提交后对表空间与各个表施加的锁自动解锁。
本发明实施例首先确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点,然后将待迁移表空间中的数据文件拷贝到目标节点中,最后将待迁移表空间对应的日志文件发送到目标节点并重演。本发明实施例提供的数据重分布方法,通过在线迁移,联机拷贝表空间数据文件,重演迁移过程中用户产生的日志文件的方式,使得在迁移过程中,用户还能继续访问并修改表空间内表的数据,几乎不受到表空间迁移所带来的影响,并且在拷贝数据时采用多线程并行拷贝的方式,提升迁移效率,使数据重分布过程更加简单高效。
实施例二
图2为本发明实施例二提供的一种数据重分布方法的流程图,本实施例为上述实施例S130的细化。如图2所示,该方法包括:
S210、确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点。
在本实施例中,在数据存储节点个数发生变化的情况下,需要对分布式系统中的节点数据进行迁移,即重分布。
可选的,根据执行的SQL语句,可以确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点。
S220、将待迁移表空间中的数据文件拷贝到目标节点中。
在本实施例中,根据已知的待迁移表空间以及对应的目标节点,可以将待迁移表空间迁移至目标节点,在物理上表现为将所属待迁移表空间中的数据文件拷贝到目标节点中。
可选的,可以通过封锁待迁移表空间及待迁移表空间中的各个表的方式,防止表定义被修改,然后在源节点上获取待迁移表空间的定义,根据定义在目标节点上创建新表空间,最后将待迁移表空间中的数据文件拷贝到新表空间中。优选地,待迁移表空间可以利用排他锁封锁,待迁移表空间中的分区表的主表可以利用意向共享锁封锁,分区表中的子表及待迁移表空间的其余表可以利用意向排他锁封锁。
S230、获取待迁移表空间中的数据文件拷贝期间的第一目标日志文件。
在本实施例中,待迁移表空间对应的日志文件可以分两次进行发送与重演,第一次为待迁移表空间中的数据文件拷贝期间的日志文件,第二次为第一次重演日志期间产生的增量日志文件。
可选的,获取待迁移表空间中的数据文件拷贝期间的第一目标日志文件的方式可以是:获取待迁移表空间中的数据文件开始拷贝时刻的检查点日志序列号,并将检查点日志序列号确定为起始日志序列号;将内存中的日志写入日志文件,将日志文件写入时刻的文件日志序列号确定为结束日志序列号;将日志序列号大于等于起始日志序列号且小于等于结束日志序列号的日志文件确定为第一目标日志文件。
其中,日志序列号(Log Sequence Number,LSN)是由系统自动维护的Bigint类型数值,具有自动递增、全局唯一特性,每一个LSN值代表着数据库系统内部产生的一个物理事务。物理事务(Physical Transaction,PTX)是数据库内部一系列修改物理数据页操作的集合,与数据库管理系统中事务(Transaction)概念相对应,具有原子性、有序性、无法撤销等特性。检查点日志序列号(CKPT_LSN)是检查点LSN,所有LSN<=CKPT_LSN的物理事务修改的数据页,都已经从缓冲区(Buffer)写入表空间数据文件,CKPT_LSN由检查点线程负责调整。重演日志时,CKPT_LSN之前的REDO日志不需要重演,只需要从CKPT_LSN开始重演,就可以将系统重演到最新状态。文件日志序列号(FILE_LSN)是已经刷盘写入日志文件的最大LSN值。CKPT_LSN到FILE_LSN的这部分内容是已经写入日志文件,但是还没有写入表空间数据文件的内容,即这部分日志是需要重演的部分。
具体的,在日志文件的第一次发送与重演之前,可以执行一个完全检查点,检查点是一个数据库事件,它的功能是按照数据页的修改顺序,依次将BUFFER缓冲区中的脏页写入磁盘,并在这个过程中动态调整CKPT_LSN值,将待迁移表空间中的数据文件开始拷贝时刻的CKPT_LSN作为起始日志序列号(BEGIN_LSN)。这表示比此LSN小的所有修改数据都已经刷到新表空间文件中了,后续从CKPT_LSN开始拷贝日志文件到目标节点上进行重演。进一步地,第一目标日志文件为待迁移表空间中的数据文件拷贝期间的日志文件,在数据文件拷贝时,将内存中的日志写入日志文件,将日志文件写入时刻的FILE_LSN确定为结束日志序列号(END_LSN)。第一目标日志文件即为LSN范围处于[BEGIN_LSN,END_LSN]的部分。
S240、将第一目标日志文件发送到目标节点,并根据第一目标日志文件对目标节点中的数据文件执行相应操作。
在本实施例中,确定第一目标日志文件后可以将其发送到目标节点并重演日志。这是第一次重演,目的是将之前待迁移表空间数据文件拷贝期间产生的日志先重演掉,因为文件拷贝是整个流程中最耗时的操作,此期间可能会堆积一段日志。先将这部分日志进行重演,并且不影响用户的写操作,对系统影响可以做到最小。
S250、获取第一目标日志文件重演期间的第二目标日志文件。
在本实施例中,第二次重演的对象为第一次重演日志期间产生的增量日志文件。
可选的,获取第一目标日志文件重演期间的第二目标日志文件的方式可以是:利用共享锁封锁待迁移表空间中的各个表;将结束日志序列号确定为新的起始日志序列号;将内存中的日志写入日志文件,将日志文件写入时刻的文件日志序列号确定为新的结束日志序列号;将日志序列号大于等于新的起始日志序列号且小于等于新的结束日志序列号的日志文件确定为第二目标日志文件。
具体的,完成第一次重演之后,可以对待迁移表空间内的所有表增加S封锁,由于此前已施加了IS/IX封锁,此时各表的封锁为IX+S或IS+S,这样可以阻止用户对表修改和写数据。增加S封锁之后,不允许其他事务修改表定义和表中数据,但允许其他事务共享访问表中数据。进一步地,可以将之前的END_LSN作为新的BEGIN_LSN,再次将内存中所有日志刷盘写入日志文件,获取此时的FILE_LSN作为新的END_LSN。第二目标日志文件即为LSN范围处于[BEGIN_LSN,END_LSN]的部分,其中BEGIN_LSN与END_LSN均为更新后的值。
S260、将第二目标日志文件发送到目标节点,并根据第二目标日志文件对目标节点中的数据文件执行相应操作。
在本实施例中,确定第二目标日志文件后,可以将其发送到目标节点并重演日志。
本发明实施例首先确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点,然后将待迁移表空间中的数据文件拷贝到目标节点中,再获取待迁移表空间中的数据文件拷贝期间的第一目标日志文件,再将第一目标日志文件发送到目标节点,并根据第一目标日志文件对目标节点中的数据文件执行相应操作,再获取第一目标日志文件重演期间的第二目标日志文件,最后将第二目标日志文件发送到目标节点,并根据第二目标日志文件对目标节点中的数据文件执行相应操作。本发明实施例提供的数据重分布方法,可以在线迁移表空间,联机拷贝表空间数据文件,并分两步完成日志文件的重演,使得在迁移过程中,用户还能继续访问并修改表空间内表的数据,使数据重分布过程更加简单高效。
实施例三
图3为本发明实施例三提供的一种数据重分布装置的结构示意图。如图3所示,该装置包括:待迁移表空间及源节点与目标节点确定模块310,数据文件拷贝模块320和日志文件发送并重演模块330。
待迁移表空间及源节点与目标节点确定模块310,用于确定待迁移表空间及待迁移表空间所在的源节点与将要迁移到的目标节点。
数据文件拷贝模块320,用于将待迁移表空间中的数据文件拷贝到目标节点中。
可选的,数据文件拷贝模块320还用于:
封锁待迁移表空间及待迁移表空间中的各个表;在源节点上获取待迁移表空间的定义,根据定义在目标节点上创建新表空间;将待迁移表空间中的数据文件拷贝到新表空间中。
可选的,数据文件拷贝模块320还用于:
利用排他锁封锁待迁移表空间;获取各个表中的分区表,利用意向共享锁封锁分区表中的主表,利用意向排他锁封锁分区表中的子表及待迁移表空间的其余表。
日志文件发送并重演模块330,用于将待迁移表空间对应的日志文件发送到目标节点并重演。
可选的,日志文件发送并重演模块330还用于:
获取待迁移表空间中的数据文件拷贝期间的第一目标日志文件;将第一目标日志文件发送到目标节点,并根据第一目标日志文件对目标节点中的数据文件执行相应操作;获取第一目标日志文件重演期间的第二目标日志文件;将第二目标日志文件发送到目标节点,并根据第二目标日志文件对目标节点中的数据文件执行相应操作。
可选的,日志文件发送并重演模块330还用于:
获取待迁移表空间中的数据文件开始拷贝时刻的检查点日志序列号,并将检查点日志序列号确定为起始日志序列号;将内存中的日志写入日志文件,将日志文件写入时刻的文件日志序列号确定为结束日志序列号;将日志序列号大于等于起始日志序列号且小于等于结束日志序列号的日志文件确定为第一目标日志文件。
可选的,日志文件发送并重演模块330还用于:
利用共享锁封锁待迁移表空间中的各个表;将结束日志序列号确定为新的起始日志序列号;将内存中的日志写入日志文件,将日志文件写入时刻的文件日志序列号确定为新的结束日志序列号;将日志序列号大于等于新的起始日志序列号且小于等于新的结束日志序列号的日志文件确定为第二目标日志文件。
可选的,数据重分布装置还包括节点字典信息修改模块340,用于修改元数据节点中的节点字典信息。
可选的,节点字典信息修改模块340还用于:
利用排他锁封锁待迁移表空间中的各个表;将节点字典信息中待迁移表空间所在的节点修改为目标节点;移除待迁移表空间上的字典缓存信息,并删除源节点上的待迁移表空间。
本发明实施例所提供的数据重分布装置可执行本发明任意实施例所提供的数据重分布方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据重分布方法。
在一些实施例中,数据重分布方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的数据重分布的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据重分布方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种数据重分布方法,其特征在于,包括:
确定待迁移表空间及所述待迁移表空间所在的源节点与将要迁移到的目标节点;
将所述待迁移表空间中的数据文件拷贝到所述目标节点中;
将所述待迁移表空间对应的日志文件发送到所述目标节点并重演。
2.根据权利要求1所述的方法,其特征在于,将所述待迁移表空间中的数据文件拷贝到所述目标节点中,包括:
封锁所述待迁移表空间及所述待迁移表空间中的各个表;
在所述源节点上获取所述待迁移表空间的定义,根据所述定义在所述目标节点上创建新表空间;
将所述待迁移表空间中的数据文件拷贝到所述新表空间中。
3.根据权利要求2所述的方法,其特征在于,封锁所述待迁移表空间及所述待迁移表空间中的各个表,包括:
利用排他锁封锁所述待迁移表空间;
获取所述各个表中的分区表,利用意向共享锁封锁所述分区表中的主表,利用意向排他锁封锁所述分区表中的子表及所述待迁移表空间的其余表。
4.根据权利要求1所述的方法,其特征在于,将所述待迁移表空间对应的日志文件发送到所述目标节点并重演,包括:
获取所述待迁移表空间中的数据文件拷贝期间的第一目标日志文件;
将所述第一目标日志文件发送到所述目标节点,并根据所述第一目标日志文件对所述目标节点中的数据文件执行相应操作;
获取所述第一目标日志文件重演期间的第二目标日志文件;
将所述第二目标日志文件发送到所述目标节点,并根据所述第二目标日志文件对所述目标节点中的数据文件执行相应操作。
5.根据权利要求4所述的方法,其特征在于,获取所述待迁移表空间中的数据文件拷贝期间的第一目标日志文件,包括:
获取所述待迁移表空间中的数据文件开始拷贝时刻的检查点日志序列号,并将所述检查点日志序列号确定为起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为结束日志序列号;
将日志序列号大于等于所述起始日志序列号且小于等于所述结束日志序列号的日志文件确定为所述第一目标日志文件。
6.根据权利要求5所述的方法,其特征在于,获取所述第一目标日志文件重演期间的第二目标日志文件,包括:
利用共享锁封锁所述待迁移表空间中的各个表;
将所述结束日志序列号确定为新的起始日志序列号;
将内存中的日志写入日志文件,将所述日志文件写入时刻的文件日志序列号确定为新的结束日志序列号;
将日志序列号大于等于所述新的起始日志序列号且小于等于所述新的结束日志序列号的日志文件确定为所述第二目标日志文件。
7.根据权利要求1所述的方法,其特征在于,将所述待迁移表空间对应的日志文件发送到所述目标节点并重演之后,还包括:
修改元数据节点中的节点字典信息。
8.根据权利要求7所述的方法,其特征在于,修改元数据节点中的节点字典信息,包括:
利用排他锁封锁所述待迁移表空间中的各个表;
将所述节点字典信息中所述待迁移表空间所在的节点修改为所述目标节点;
移除所述待迁移表空间上的字典缓存信息,并删除所述源节点上的所述待迁移表空间。
9.一种数据重分布装置,其特征在于,包括:
待迁移表空间及源节点与目标节点确定模块,用于确定待迁移表空间及所述待迁移表空间所在的源节点与将要迁移到的目标节点;
数据文件拷贝模块,用于将所述待迁移表空间中的数据文件拷贝到所述目标节点中;
日志文件发送并重演模块,用于将所述待迁移表空间对应的日志文件发送到所述目标节点并重演。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的数据重分布方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一项所述的数据重分布方法。
CN202210355045.5A 2022-04-06 2022-04-06 一种数据重分布方法、装置、设备及存储介质 Pending CN114706832A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210355045.5A CN114706832A (zh) 2022-04-06 2022-04-06 一种数据重分布方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210355045.5A CN114706832A (zh) 2022-04-06 2022-04-06 一种数据重分布方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114706832A true CN114706832A (zh) 2022-07-05

Family

ID=82172446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210355045.5A Pending CN114706832A (zh) 2022-04-06 2022-04-06 一种数据重分布方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114706832A (zh)

Similar Documents

Publication Publication Date Title
US11176140B2 (en) Updating a table using incremental and batch updates
US20220350819A1 (en) System and method for improved performance in a multidimensional database environment
US11960464B2 (en) Customer-related partitioning of journal-based storage systems
US10346434B1 (en) Partitioned data materialization in journal-based storage systems
US9146934B2 (en) Reduced disk space standby
EP3170106B1 (en) High throughput data modifications using blind update operations
US11442961B2 (en) Active transaction list synchronization method and apparatus
US10657154B1 (en) Providing access to data within a migrating data partition
US20190392047A1 (en) Multi-table partitions in a key-value database
WO2019109854A1 (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
US11250022B1 (en) Offline index builds for database tables
CN112818053A (zh) 用于实时跨系统数据库复制的方法和系统
CN112965951A (zh) 用于数据库中数据重分布的系统和方法
US20230418811A1 (en) Transaction processing method and apparatus, computing device, and storage medium
US11960442B2 (en) Storing a point in time coherently for a distributed storage system
CN117043763A (zh) 数据库加速器中的易失性数据库高速缓存
US9858310B2 (en) Maintaining in-memory database consistency by parallelizing persistent data and log entries
CN111414356A (zh) 数据存储方法、装置、非关系数据库系统及存储介质
CN115617802A (zh) 一种全量快照快速生成方法、装置、电子设备及存储介质
US11789971B1 (en) Adding replicas to a multi-leader replica group for a data set
CN114706832A (zh) 一种数据重分布方法、装置、设备及存储介质
CN115114294A (zh) 数据库存储模式的自适应方法、装置、计算机设备
CN114579059A (zh) 一种文件数据迁移方法、装置、设备及存储介质
CN113672556A (zh) 一种批量文件的迁移方法及装置
US11880385B1 (en) Ordering updates to secondary indexes using conditional operations

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