CN111639087B - 数据库中数据更新方法、装置和电子设备 - Google Patents
数据库中数据更新方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111639087B CN111639087B CN202010471948.0A CN202010471948A CN111639087B CN 111639087 B CN111639087 B CN 111639087B CN 202010471948 A CN202010471948 A CN 202010471948A CN 111639087 B CN111639087 B CN 111639087B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- database
- updating
- log
- 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
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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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
- G06F16/275—Synchronous replication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库中数据更新方法、装置和电子设备,涉及云计算技术领域,包括:获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。本申请解决通过现有的技术方案对数据库中的数据进行变更时效率较慢的技术问题。
Description
技术领域
本发明涉及数据库的技术领域,尤其是涉及一种数据库中数据更新方法、装置和电子设备。
背景技术
在支持计算与存储分离的数据库新架构中,一般主从之间采用物理复制模式,即:数据库主库和数据库从库之间同步的数据为修改的数据,即主库上修改操作涉及到的数据页传递到从库上进行数据覆盖写。
针对数据库列操作的物理复制同步方式中,涉及到数据库表元数据的变更和数据库表已有数据的变更。例如对数据库表添加一列,则对表的每一行记录的数据都需要添加一列的记录,同时还需要修改表的schema信息,涉及修改的数据量非常大。当主库修改完后,需要将所有修改的数据页同步传输到从库进行映射写。
也就是说,在相关技术方案中,当数据库表的数据量特别大时,数据库主库操作时间长,数据更新效率低,物理复制传输的修改数据页记录庞大,应用客户端的等待时间很长,很容易发生超时。
发明内容
有鉴于此,本发明的目的在于提供一种数据库中数据更新方法、装置和电子设备,以提高数据库中数据的变更效率。
第一方面,本发明实施例提供了一种数据库中数据更新方法,包括:获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
进一步地,判断所述目标数据页是否满足数据更新条件包括:在所述目标数据页中获取所述目标数据页的最大日志序列号;在目标系统表中确定所述目标数据页对应的目标日志序列号,其中,所述目标系统表中包含所述数据库中各个数据表的最新元数据信息,以及所述最新元数据信息对应的操作日志的日志序列号;若所述最大日志序列号和所述目标日志序列号不相同,则确定所述目标数据页满足所述数据更新条件,并对所述目标数据页中的数据内容进行更新。
进一步地,对所述目标数据页中的数据内容进行更新包括:按照所述目标系统表中所述目标数据表的最新元数据信息对所述目标数据页中的数据进行更新。
进一步地,在目标系统表中确定所述目标数据页对应的目标日志序列号包括:确定所述目标数据页的表空间ID信息;在所述目标系统表查找与所述表空间ID信息相对应的日志序列号,并将查找到的日志序列号作为所述日志序列号。
进一步地,所述方法还包括:在检测到对所述目标数据表的元数据修改操作时,生成所述元数据修改操作所对应的操作日志,得到目标操作日志;基于所述目标操作日志对所述目标系统表进行更新。
进一步地,基于所述目标操作日志对所述目标系统表进行更新包括:确定所述目标操作日志的日志序列号和所述目标操作日志对应的元数据信息;将所述目标日志序列号更新为所述目标操作日志的日志序列号;将所述目标系统表的最新元数据信息更新为所述目标操作日志对应的元数据信息。
进一步地,所述元数据修改操作包括:对目标数据表中数据列的删除操作,和/或,对目标数据表中数据列的新增操作。
进一步地,所述方法还包括:若所述数据库为数据库主库,则对至少一个数据库从库中相对应的数据页中的数据进行更新;在所述至少一个数据库从库中相对应的数据页中的数据更新结束之后,向用户返回更新结束的信息。
第二方面,本发明实施例提供了一种数据库中数据更新装置,包括:获取单元,用于获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;判断单元,用于在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;更新单元,用于若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法。
第四方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面中任一项所述方法。
在本发明实施例中,首先,获取对数据库中的目标数据页执行读写操作时生成的数据读写指令,在获取到该数据读写指令之后,判断目标数据页是否满足数据更新条件,如果满足数据更新条件,则对目标数据页中的数据内容进行更新。通过上述描述可知,在本申请中,通过在检测到数据读写指令的情况下,对满足更新条件的目标数据页进行更新的方式,能够提高数据库中数据的变更效率,进而解决通过相关技术方案对数据库中的数据进行变更时效率较慢的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术的一种数据库物理复制方式的流程图;
图2是根据本发明实施例的一种数据库中数据更新方法的流程图;
图3是根据本发明实施例的另一种数据库中数据更新方法的流程图;
图4是根据本发明实施例的一种数据库中数据更新装置的示意图;
图5是根据本发明实施例的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对数据库中的列数据进行更新时,如图1所示,相关技术方案描述如下:
(1)应用客户端向数据库主库发起添加/删除数据库表列的操作;
(2)数据库主库完成数据库表列的操作,并修改表的schame元数据;
(3)数据库主库通过物理复制将操作所涉及的修改记录同步到数据库从库;
(4)数据库从库回放主库同步过来的修改页数据;
(5)数据库从库返回主库物理复制结果ACK确认字符;
(6)数据库主库返回应用APP结果ACK确认字符。
针对相关技术,当数据库表的数据量特别大时,数据库主库操作时间长,物理复制传输的修改数据页记录庞大,应用APP等待时间会很长,很容易发生超时。
基于此,在本申请中,提出了一种数据库中数据更新方法,该方法通过在检测到数据读写指令的情况下,对满足更新条件的目标数据页进行更新的方式,能够提高数据库中数据的变更效率,进而解决通过相关技术方案对数据库中的数据进行变更时效率较慢的技术问题。下面将结合具体的实施例介绍该方法。
实施例一:
根据本发明实施例,提供了一种数据库中数据更新方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种数据库中数据更新方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取对数据库中的目标数据页执行读写操作时生成的数据读写指令。
在数据库架构中,包括数据库主库和数据库从库,在步骤S202中,该数据库可以为数据库主库,还可以为数据库从库,本申请对此不做具体限定。在本申请中,该数据读写指令可以为用户通过客户端向数据库发送的读写数据库中数据表的数据页的指令。其中,在数据库(数据库主库和数据库从库)中包含多个数据表,每个数据表中的数据存在于多个数据页中。
步骤S204,在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件。
通过上述描述可知,在相关技术中,在应用向数据库主库发起添加/删除数据库表列的操作之后,数据库主库修改数据表中的列数据,得到更新之后的数据库主库。当有应用访问该数据库主库时,则可以在更新之后的数据库主库中执行相应的读写操作,但是,当数据库表的数据量特别大时,数据库主库操作时间长,物理复制传输的修改数据页记录庞大,应用APP等待时间很长,很容易发生超时。
基于此,在本申请中,可以设置数据库被动访问触发数据变更,也就是说,在获取到数据读写指令之后,判断数据库中的目标数据页是否满足数据更新条件。其中,该数据更新条件为基于目标数据页的日志序列号所确定的用于判断是否对目标数据页中的数据内容进行更新的条件。通过上述处理方式,使得数据库在执行DDL(Data DefinationLanguage,数据库定义语言)操作之后,无需实时修改数据库中的数据,可通过被动访问分散更新数据,以降低数据库DDL操作瞬时压力,缩短数据库的响应时间。
步骤S206,若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
在本发明实施例中,首先,获取对数据库中的目标数据页执行读写操作时生成的数据读写指令,在获取到该数据读写指令之后,判断目标数据页是否满足数据更新条件,如果满足数据更新条件,则对目标数据页中的数据内容进行更新。通过上述描述可知,在本申请中,通过在检测到数据读写指令的情况下,对满足更新条件的目标数据页进行更新的方式,能够提高数据库中数据的变更效率,进而解决通过相关技术方案对数据库中的数据进行变更时效率较慢的技术问题。
在一个可选的实施方式中,步骤S206,判断所述目标数据页是否满足数据更新条件,包括如下步骤:
步骤S2061,在所述目标数据页中获取所述目标数据页的最大日志序列号;
步骤S2062,在目标系统表中确定所述目标数据页对应的目标日志序列号,其中,所述目标系统表中包含所述数据库中各个数据表的最新元数据信息,以及所述最新元数据信息对应的操作日志的日志序列号;
步骤S2063,若所述最大日志序列号和所述目标日志序列号不相同,则确定所述目标数据页满足所述数据更新条件,并对所述目标数据页中的数据内容进行更新。
在本申请中,预先新增了一个系统表Schema_version_table(简记SVT),即目标系统表(简称SVT表)。在该SVT表中用于记录表的新schema信息及其对应的redo日志,构成三元组{N,LSN N,新schema描述},其中,N为表空间ID,LSN_N为MLOG_TRX_DDL日志对应日志序列号LSN。
例如,在对数据库中的数据表执行DDL操作时,将生成一条redo日志MLOG_TRX_DDL,在本申请中,可以将该redo日志的日志序列号、以及该DDL操作所对应的新schema描述(即,最新元数据信息),以及表空间ID作为一个三元组记录在SVT表中,其中,表空间ID为数据库中各个数据表的表空间ID信息。需要说明的是,在本申请中,DDL操作为对数据库中数据表的列执行删除或者添加的操作。
也就是说,在本申请中,在SVT表中,记录了数据库中各个数据表在执行最近一次的DDL操作之后的新schema描述(最新元数据信息),以及新schema描述对应的操作日志(例如,redo日志)的日志序列号LSN。
基于此,在本申请中,由于在数据页中记录了该数据页的日志序列号,因此,可以首先在目标数据页中获取该目标数据页的最大日志序列号,该最大日志序列号表示对目标数据页的最新DDL操作所对应的redo日志的日志序列号。
之后,在SVT表中,确定该目标数据页所对应的目标日志序列号。具体地,可以通过表空间ID的方式确定该目标日志序列号。具体地,可以确定所述目标数据页的表空间ID信息,例如,确定出的该目标数据页的表空间ID信息为N。接下来,在所述目标系统表查找与所述表空间ID信息相对应的日志序列号,并将查找到的日志序列号作为所述日志序列号。通过上述描述可知,在SVT表中包含多个三元组,每个三元组包括:redo日志的日志序列号、以及该DDL操作所对应的新schema描述(即,最新元数据信息),以及表空间ID。基于此,在本申请中,可以在SVT表中查找与目标数据表的表空间ID信息相对应的目标日志序列号,例如,N。在查找到该目标日志序列号之后,可以将该最大日志序列号和目标日志序列号进行比较,如果最大日志序列号和目标日志序列号不一致,则确定目标数据页满足数据更新条件。
需要说明的是,在SVT表中记录的是最新DDL操作的新schema描述和其所对应的日志序列号,因此,如果最大日志序列号和目标日志序列号不一致,则表明在对目标数据页执行最新DDL操作之后,还未对目标数据页中相对应的数据内容进行更新,因此,该目标数据页满足数据更新条件。
在确定出目标数据页满足所述数据更新条件之后,可以按照所述目标系统表中所述目标数据表的最新元数据信息对所述目标数据页中的数据进行更新。具体地,可以根据表空间ID信息N在SVT表中确定其所对应的三元组,然后,在该三元组中确定最新元数据信息,并按照最新元数据信息对目标数据页中的数据进行更新。
通过上述描述可知,在本申请中,通过上述处理方式能够使得数据库在执行DDL操作之后,无需实时修改数据库中的数据,可通过被动访问分散更新数据,以降低数据库DDL操作瞬时压力,缩短数据库的响应时间。
在本申请中,若所述数据库为数据库主库,则对至少一个数据库从库中相对应的数据页中的数据进行更新。
需要说明的是,在本申请中,数据库主库和数据库从库均对应一个目标系统表SVT表,在该目标系统表中包含数据库中各个数据表所对应的三元组数据:{N,LSN N,新schema描述},其中,N为表空间ID,LSN_N为MLOG_TRX_DDL日志对应日志序列号LSN。也即,在本申请中,在对数据库主库中的目标数据页中的数据内容进行更新之后,还可以根据数据库从库的目标系统表对相应的数据页中的数据进行更新。并在所述至少一个数据库从库中相对应的数据页中的数据更新结束之后,向用户返回更新结束的信息。
在一个可选的实施方式中,该方法还包括如下过程:
步骤S1,在检测到对所述目标数据表的元数据修改操作时,生成所述元数据修改操作所对应的操作日志,得到目标操作日志;其中,在本申请中,元数据修改操作包括:对目标数据表中数据列的删除操作,和/或,对目标数据表中数据列的新增操作。
步骤S2,基于所述目标操作日志对所述目标系统表进行更新。
需要说明的是,在本申请中,步骤S1和步骤S2可以在步骤S202至步骤S206之前执行,还可以在步骤S202至步骤S206之后执行,本申请对此不做具体限定。
通过上述描述可知,在本申请中,预先新增了一个系统表即,目标系统表(简称SVT表)。在该SVT表中用于记录表的新schema信息及其对应的redo日志,构成三元组{N,LSN N,新schema描述},其中,N为表空间ID,LSN_N为MLOG_TRX_DDL日志对应日志序列号LSN。
在本申请中,数据库在检测到对目标数据表的元数据修改操作时(即,DDL操作),则生成该元数据修改操作所对应的redo日志(即,目标操作日志),之后,就可以基于目标操作日志对目标系统表进行更新。
具体地,上述更新过程可以描述为:
首先,确定所述目标操作日志的日志序列号和所述目标操作日志对应的元数据信息;
其次,将所述目标日志序列号更新为所述目标操作日志的日志序列号;
最后,将所述目标系统表的最新元数据信息更新为所述目标操作日志对应的元数据信息。
具体地,在本申请中,在检测到用户对目标数据表的最新元数据修改操作之后,可以生成该最新的元数据修改操作所对应的操作日志,即,目标操作日志。然后,将目标系统表中的目标日志序列号(也即,上一次元数据修改操作所对应的操作日志的日志序列号)更新为目标操作日志的日志序列号(即,最新元数据修改操作的操作日志的日志序列号)。同时,还可以将目标系统表中的最新元数据信息(即,上一次元数据修改操作所对应的元数据信息)更新为目标操作日志对应的元数据信息(即,最新元数据修改操作对应的元数据信息)。
需要说明的是,在本申请中,上述实施例中所描述的数据库可以为数据库主库和数据库从库,数据库主库和数据库从库均对应一个目标系统表SVT表,在该目标系统表中包含数据库中各个数据表所对应的三元组数据:{N,LSN N,新schema描述},其中,N为表空间ID,LSN_N为MLOG_TRX_DDL日志对应日志序列号LSN。
也就是说,在本申请中,对数据库主库的目标系统表的更新过程和对数据库从库的目标系统表的更新过程相同,此处不再一一介绍。
具体地,当数据库主库按照上述所描述的过程对目标系统表进行更新之后,向数据库从库发送更新完成的消息,之后,数据库从库按照上述所描述的过程对目标系统表进行更新。在数据库主库和数据库从库均执行完更新操作之后,向客户端返回更新完成的消息。
通过上述描述可知,在本申请中,在对数据库进行DDL操作(即,元数据修改操作)时,数据库主库或者数据库从库只需修改目标系统表的元数据信息即可,无需同步所有变更页数据,极大减少了主从库间同步数据量。
实施例二:
图3是根据本发明实施例的另一种数据库中数据更新方法的流程图,从图3中可以看出,该方法的处理过程描述如下:
(1)在数据页中记录数据页修改时的LSN标记,假设为LSN x;
(2)当数据库中的数据表进行DDL操作(即,元数据修改操作)时,生成一条redo日志MLOG_TRX_DDL;
(3)SVT(Schema_version_table)记录表的新schema信息(即,最新元数据信息)及其对应的redo日志,构成三元组{N,LSN N,新schema信息}。其中,N为表空间ID,LSN_N为MLOG_TRX_DDL日志对应LSN;SVT表为数据库新增的一个目标系统表(简记SVT表);
(4)获取对数据库中的数据页执行读写操作时生成的数据读写指令;
(5)比较数据页的LSN x与SVT中记录的表的schema对应的LSN号;若数据页的LSNx与SVT中记录的表的schema对应的LSN号LSN_N不相等(例如,LSN_N>LSN x),则按照新schema信息对该数据页中的数据进行修改,从而生成新的数据页;
其中,在本申请中,数据库从库回放MLOG_TRX_DDL日志时,也会更新相对应的SVT表。数据库主库和数据库从库均对应一个目标系统表SVT表。
实施例三:
本发明实施例还提供了一种数据库中数据更新装置,该数据库中数据更新装置主要用于执行本发明实施例上述内容所提供的数据库中数据更新方法,以下对本发明实施例提供的数据库中数据更新装置做具体介绍。
图4是根据本发明实施例的一种数据库中数据更新装置的示意图,如图4所示,该数据库中数据更新装置主要包括获取单元10,判断单元20和更新单元30,其中:
获取单元10,用于获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;
判断单元20,用于在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;
更新单元30,用于若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
在本发明实施例中,首先,获取对数据库中的目标数据页执行读写操作时生成的数据读写指令,在获取到该数据读写指令之后,判断目标数据页是否满足数据更新条件,如果满足数据更新条件,则对目标数据页中的数据内容进行更新。通过上述描述可知,在本申请中,通过在检测到数据读写指令的情况下,对满足更新条件的目标数据页进行更新的方式,能够提高数据库中数据的变更效率,进而解决通过相关的技术方案对数据库中的数据进行变更时效率较慢的技术问题。
可选地,判断单元用于:在所述目标数据页中获取所述目标数据页的最大日志序列号;在目标系统表中确定所述目标数据页对应的目标日志序列号,其中,所述目标系统表中包含所述数据库中各个数据表的最新元数据信息,以及所述最新元数据信息对应的操作日志的日志序列号;若所述最大日志序列号和所述目标日志序列号不相同,则确定所述目标数据页满足所述数据更新条件,并对所述目标数据页中的数据内容进行更新。
可选地,判断单元还用于:按照所述目标系统表中所述目标数据表的最新元数据信息对所述目标数据页中的数据进行更新。
可选地,判断单元还用于:确定所述目标数据页的表空间ID信息;在所述目标系统表查找与所述表空间ID信息相对应的日志序列号,并将查找到的日志序列号作为所述日志序列号。
可选地,该装置还用于:在检测到对所述目标数据表的元数据修改操作时,生成所述元数据修改操作所对应的操作日志,得到目标操作日志;基于所述目标操作日志对所述目标系统表进行更新。
可选地,该装置还用于:确定所述目标操作日志的日志序列号和所述目标操作日志对应的元数据信息;将所述目标日志序列号更新为所述目标操作日志的日志序列号;将所述目标系统表的最新元数据信息更新为所述目标操作日志对应的元数据信息。
可选地,所述元数据修改操作包括:对目标数据表中数据列的删除操作,和/或,对目标数据表中数据列的新增操作。
可选地,该装置还用于:若所述数据库为数据库主库,则对至少一个数据库从库中相对应的数据页中的数据进行更新;在所述至少一个数据库从库中相对应的数据页中的数据更新结束之后,向用户返回更新结束的信息。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例四:
参见图5,本发明实施例还提供一种电子设备100,包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的进行数据库中数据更新方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种数据库中数据更新方法,其特征在于,包括:
获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;其中,所述数据库支持计算与存储分离;
在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;
若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
2.根据权利要求1所述的方法,其特征在于,判断所述目标数据页是否满足数据更新条件包括:
在所述目标数据页中获取所述目标数据页的最大日志序列号;
在目标系统表中确定所述目标数据页对应的目标日志序列号,其中,所述目标系统表中包含所述数据库中各个数据表的最新元数据信息,以及所述最新元数据信息对应的操作日志的日志序列号;
若所述最大日志序列号和所述目标日志序列号不相同,则确定所述目标数据页满足所述数据更新条件,并对所述目标数据页中的数据内容进行更新。
3.根据权利要求2所述的方法,其特征在于,对所述目标数据页中的数据内容进行更新包括:
按照所述目标系统表中目标数据表的最新元数据信息对所述目标数据页中的数据进行更新。
4.根据权利要求2所述的方法,其特征在于,在目标系统表中确定所述目标数据页对应的目标日志序列号包括:
确定所述目标数据页的表空间ID信息;
在所述目标系统表查找与所述表空间ID信息相对应的日志序列号,并将查找到的日志序列号作为所述日志序列号。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在检测到对所述目标数据表的元数据修改操作时,生成所述元数据修改操作所对应的操作日志,得到目标操作日志;
基于所述目标操作日志对所述目标系统表进行更新。
6.根据权利要求5所述的方法,其特征在于,基于所述目标操作日志对所述目标系统表进行更新包括:
确定所述目标操作日志的日志序列号和所述目标操作日志对应的元数据信息;
将所述目标日志序列号更新为所述目标操作日志的日志序列号;
将所述目标系统表的最新元数据信息更新为所述目标操作日志对应的元数据信息。
7.根据权利要求5所述的方法,其特征在于,所述元数据修改操作包括:对目标数据表中数据列的删除操作,和/或,对目标数据表中数据列的新增操作。
8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述数据库为数据库主库,则对至少一个数据库从库中相对应的数据页中的数据进行更新;
在所述至少一个数据库从库中相对应的数据页中的数据更新结束之后,向用户返回更新结束的信息。
9.一种数据库中数据更新装置,其特征在于,包括:
获取单元,用于获取对数据库中的目标数据页执行读写操作时生成的数据读写指令;其中,所述数据库支持计算与存储分离;
判断单元,用于在获取到所述数据读写指令之后,判断所述目标数据页是否满足数据更新条件,其中,所述数据更新条件为对所述目标数据页中的数据内容进行更新的条件;
更新单元,用于若所述目标数据页满足所述数据更新条件,则对所述目标数据页中的数据内容进行更新。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-8中任一项所述方法。
11.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行上述权利要求1-8中任一项所述方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471948.0A CN111639087B (zh) | 2020-05-28 | 2020-05-28 | 数据库中数据更新方法、装置和电子设备 |
PCT/CN2021/080734 WO2021238341A1 (zh) | 2020-05-28 | 2021-03-15 | 数据库中数据更新方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471948.0A CN111639087B (zh) | 2020-05-28 | 2020-05-28 | 数据库中数据更新方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111639087A CN111639087A (zh) | 2020-09-08 |
CN111639087B true CN111639087B (zh) | 2023-09-08 |
Family
ID=72329762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471948.0A Active CN111639087B (zh) | 2020-05-28 | 2020-05-28 | 数据库中数据更新方法、装置和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111639087B (zh) |
WO (1) | WO2021238341A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639087B (zh) * | 2020-05-28 | 2023-09-08 | 北京金山云网络技术有限公司 | 数据库中数据更新方法、装置和电子设备 |
CN114331135B (zh) * | 2021-12-29 | 2023-02-03 | 上海赛美特软件科技有限公司 | 一种工艺流程管理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017162194A (ja) * | 2016-03-09 | 2017-09-14 | 富士通株式会社 | データ管理プログラム、データ管理装置、及びデータ管理方法 |
CN109408588A (zh) * | 2018-09-07 | 2019-03-01 | 武汉达梦数据库有限公司 | 一种数据库同步初始化装载时断点续传的方法 |
CN110019066A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据库处理方法及装置、系统 |
CN110442560A (zh) * | 2019-08-14 | 2019-11-12 | 上海达梦数据库有限公司 | 一种日志重演方法、装置、服务器和存储介质 |
CN110471909A (zh) * | 2019-08-26 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据库管理方法、装置、服务器及存储介质 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
WO2020033051A1 (en) * | 2018-08-10 | 2020-02-13 | Microsoft Technology Licensing, Llc | Consistent read queries from a secondary compute node |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295306B (zh) * | 2007-04-26 | 2012-09-05 | 国际商业机器公司 | 目录服务器中的修改条目名称操作方法和相应设备 |
US10747776B2 (en) * | 2012-12-04 | 2020-08-18 | International Business Machines Corporation | Replication control using eventually consistent meta-data |
CN103345501A (zh) * | 2013-06-27 | 2013-10-09 | 华为技术有限公司 | 数据库更新方法和装置 |
US9436724B2 (en) * | 2013-10-21 | 2016-09-06 | Sap Se | Migrating data in tables in a database |
US10671642B2 (en) * | 2016-11-11 | 2020-06-02 | International Business Machines Corporation | Copying data changes to a target database |
US20180144015A1 (en) * | 2016-11-18 | 2018-05-24 | Microsoft Technology Licensing, Llc | Redoing transaction log records in parallel |
CN111639087B (zh) * | 2020-05-28 | 2023-09-08 | 北京金山云网络技术有限公司 | 数据库中数据更新方法、装置和电子设备 |
-
2020
- 2020-05-28 CN CN202010471948.0A patent/CN111639087B/zh active Active
-
2021
- 2021-03-15 WO PCT/CN2021/080734 patent/WO2021238341A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017162194A (ja) * | 2016-03-09 | 2017-09-14 | 富士通株式会社 | データ管理プログラム、データ管理装置、及びデータ管理方法 |
CN110019066A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据库处理方法及装置、系统 |
WO2020033051A1 (en) * | 2018-08-10 | 2020-02-13 | Microsoft Technology Licensing, Llc | Consistent read queries from a secondary compute node |
CN109408588A (zh) * | 2018-09-07 | 2019-03-01 | 武汉达梦数据库有限公司 | 一种数据库同步初始化装载时断点续传的方法 |
CN110442560A (zh) * | 2019-08-14 | 2019-11-12 | 上海达梦数据库有限公司 | 一种日志重演方法、装置、服务器和存储介质 |
CN110471909A (zh) * | 2019-08-26 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据库管理方法、装置、服务器及存储介质 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021238341A1 (zh) | 2021-12-02 |
CN111639087A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8954673B1 (en) | Using a conditional read request and a hash to determine synchronization of data in a cache at a host with data in storage array | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
US9171027B2 (en) | Managing a multi-version database | |
WO2020211236A1 (zh) | 基于b+树的读写冲突解决方法、装置及存储介质 | |
EP3007085A1 (en) | Columnar database processing method and processing device | |
US10678784B2 (en) | Dynamic column synopsis for analytical databases | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
US20170212959A1 (en) | Codeless information service for abstract retrieval of disparate data | |
CN113918535B (zh) | 一种数据读取方法、装置、设备及存储介质 | |
CN110543495A (zh) | 游标遍历存储方法及装置 | |
CN110008197A (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
US10565184B2 (en) | Method and system for committing transactions in a semi-distributed manner | |
CN105653539A (zh) | 索引分布式存储的实现方法和装置 | |
CN111061759A (zh) | 数据查询方法及装置 | |
CN116821232A (zh) | 一种数据同步方法及相关装置 | |
CN113297230B (zh) | 数据验证方法及装置 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN107679093B (zh) | 一种数据查询方法及装置 | |
CN112632211A (zh) | 用于移动机器人的语义信息处理方法与设备 | |
CN108694209B (zh) | 基于对象的分布式索引方法和客户端 | |
CN112527911B (zh) | 一种数据存储方法、装置、设备及介质 | |
CN117453707B (zh) | 数据更新方法、装置、电子设备及存储介质 | |
CN118132598B (zh) | 基于多级缓存的数据库数据处理方法及设备 | |
CN116701545A (zh) | 审计数据分析方法、装置、存储介质及处理器 | |
US10521314B2 (en) | Cross-referenced irregular field storage in databases |
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 |