CN116204354A - 数据库的数据写入错误的处理方法、存储介质与设备 - Google Patents

数据库的数据写入错误的处理方法、存储介质与设备 Download PDF

Info

Publication number
CN116204354A
CN116204354A CN202211666723.6A CN202211666723A CN116204354A CN 116204354 A CN116204354 A CN 116204354A CN 202211666723 A CN202211666723 A CN 202211666723A CN 116204354 A CN116204354 A CN 116204354A
Authority
CN
China
Prior art keywords
data
writing
index
write
database
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
CN202211666723.6A
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.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202211666723.6A priority Critical patent/CN116204354A/zh
Publication of CN116204354A publication Critical patent/CN116204354A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据库的数据写入错误的处理方法、存储介质与设备。其中数据库的数据写入错误的处理方法包括:获取批量写入操作的一行数据;确定要写入的目标数据表;在目标数据表中执行该行数据的写入操作,并对目标数据表的索引进行更新;获取写入操作的写入结果;若写入结果为失败,则对写入操作进行回滚,并检查索引的数据确认配置;若数据确认配置为需要确认,则将索引回滚至更新之前的状态。本发明的方案,对错误写入触发的索引进行回滚,在实现行级回滚的情况下避免了索引报错。

Description

数据库的数据写入错误的处理方法、存储介质与设备
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库的数据写入错误的处理方法、存储介质与设备。
背景技术
现有数据库管理系统中会通过批量更改提升性能。这些批量更改包括:批量的插入(insert),批量的删除(delete),批量的修改(update)以及批量加载等。但是数据库表上的约束或者触发器有可能中断批量操作,导致整个事务回滚。在这种情况下,已经写入的数据就会被丢弃,这会导致存储空间、读写资源的浪费以及数据库的实际体验的下降。即使少量的数据错误也会导致整个批处理任务失败。
针对上述问题,数据库系统会建立适当的容错机制。容错机制分为两类:第一类属于预防性质,比如存在主键冲突的情况下通过更新的方式替代原有的插入方式。第二类属于忽略性质,当出现错误的情况下跳过这个错误的操作以及该错误行触发的相关修改,继续进行其后的修改。
其中第二类容错机制,需要通过回滚来消除已经完成的错误操作以及错误行触发的相关修改。然而如何回滚错误行触发的相关修改成为一个技术难题,对于建立有索引的数据表而言,数据写入触发索引更新,现有技术针对这种情况一般不会对更新的索引进行额外处理,对于一般情况,这造成的影响有限,但是对于某些特定情况,这有可能导致索引报错等问题。
发明内容
本发明的一个目的是要提供一种能够解决上述任一问题的数据库的数据写入错误的处理方法、存储介质与设备。
本发明一个进一步的目的是要实现对错误写入导致的索引进行回滚。
本发明另一进一步的目的是要要不引入回滚段的情况下通过解析预写日志(Write-Ahead Logging.简称WAL)实现错误数据的回滚。
特别地,本发明提供了一种数据库的数据写入错误的处理方法,包括:
获取批量写入操作的一行数据;
确定要写入的目标数据表;
在目标数据表中执行该行数据的写入操作,并对目标数据表的索引进行更新;
获取写入操作的写入结果;
若写入结果为失败,则对写入操作进行回滚,并检查索引的数据确认配置;
若数据确认配置为需要确认,则将索引回滚至更新之前的状态。
可选地,在数据确认配置为不需确认的情况下还包括:维持索引的状态。
可选地,在目标数据表中执行该行数据的写入操作的步骤之后还包括:
获取目标数据表上预先定义的索引;
判断写入操作是否触发索引更新;
若是,执行对目标数据表的索引进行更新的操作。
可选地,在获取批量写入操作的一行数据的步骤之后还包括:标记数据库的预写日志的位置,作为回滚标记点;并且
对写入操作进行回滚的步骤包括:以回滚标记点为起点搜索预写日志中写入操作对应事务的条目;根据搜索出的条目进行数据回滚。
可选地,在目标数据表中执行该行数据的写入操作的步骤之后还包括:判断写入操作是否触发关联操作;若是,在预写日志中记录关联操作,并执行关联操作。
可选地,执行关联操作的步骤之后还包括:获取关联操作的操作结果;在关联操作的操作结果为失败的情况下,认定写入操作的写入结果为失败。
可选地,对写入操作进行回滚的步骤还包括:对关联操作进行回滚。
可选地,在写入结果为成功的情况下,还包括:读取批量写入操作的另一行数据,并记录预写日志的位置,作为另一回滚标记点。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现根据上述任一项数据库的数据写入错误的处理方法。
根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现根据上述任一项数据库的数据写入错误的处理方法。
本发明的数据库的数据写入错误的处理方法,在批量写入操作过程中,如果被写入的目标数据表配置有索引,如果出现某行数据写入错误,则检查索引的数据确认配置;若数据确认配置为需要确认,则将索引回滚至更新之前的状态。从而在数据库系统配置回表确认索引关联的数据是否存在的逻辑的情况下,这对错误写入触发的索引进行回滚,在实现行级回滚的情况下避免了索引报错。
进一步地,本发明的数据库的数据写入错误的处理方法,针对批量数据操作中的每一条被写数据,记录WAL的相应位置,在被写数据的操作失败的情况下,利用WAL搜索得出该条被写数据的错误操作,从而根据WAL确定出错误操作进行回滚,回滚完成后继续完成批量操作。回滚过程不需要回滚段,对于整个批量操作而言,相当于跳过忽略了失败的被写数据,不需要中断整个批量操作,提高了数据库的处理效率。
更进一步地,本发明的数据库的数据写入错误的处理方法,通过分析预写日志的信息,进行错误数据回滚,实现原地修改,不需要进行额外空间的分配。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的数据库的数据写入错误的处理方法的示意性流程图;
图2是根据本发明一个实施例的数据库的数据写入错误的处理方法的可选的流程图;
图3是根据本发明一个实施例的机器可读存储介质的示意图;以及
图4是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,该一部分实施例旨在用于解释本发明的技术原理,并非用于限制本发明的保护范围。基于本发明提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本发明的保护范围之内。
图1是根据本发明一个实施例的数据库的数据写入错误的处理方法的示意性流程图。该数据库的数据写入错误的处理方法一般性地可以包括:
步骤S102,获取批量写入操作的一行数据。在获取批量写入操作的一行数据的步骤之后还包括:标记数据库的预写日志(WAL)的位置,作为回滚标记点start。
批量写入可不局限于数据写入(或称为插入、创建,INSERT),还可以包括数据删除(DELETE)、数据更新(UPDATE)等一系列操作。批量数据写入的数据库的目标表可以数据元组和/或数据库系统的元数据元组。也即上述批量数据操作可以针对数据库的数据表,也可以针对数据库的系统表。
WAL是关系数据库系统中用于提供原子性和持久性的日志技术。在使用WAL的系统中,所有的修改在提交之前都要先写入WAL日志中。该步骤在读取被写数据之后,记录预写日志(WAL)的位置,作为回滚标记点start。也即通过标记WAL日志开始对该行被写数据的位置,确定后续确定错误操作的起始点。由于WAL日志的数据格式以及写入流程本身为本领域技术人员所习知,在此不做进一步赘述。
步骤S104,确定要写入的目标数据表。目标数据表既可以包括数据表也可以包括系统表。
步骤S106,在目标数据表中执行该行数据的写入操作,并对目标数据表的索引进行更新。在目标数据表中执行该行数据的写入操作的步骤之后还包括:获取目标数据表上预先定义的索引;判断写入操作是否触发索引更新;若是,执行对目标数据表的索引进行更新的操作。
在目标数据表中执行该行数据的写入操作的步骤之后还包括:判断写入操作是否触发关联操作;若是,在预写日志中记录关联操作,并执行关联操作。执行关联操作的步骤之后还包括:获取关联操作的操作结果;在关联操作的操作结果为失败的情况下,认定写入操作的写入结果为失败。
步骤S108,获取写入操作的写入结果。在写入结果为成功的情况下,还包括:读取批量写入操作的另一行数据,并记录预写日志的位置,作为另一回滚标记点。写入操作还包括其关联操作。这些关联操作可以包括:由写入操作触发的目标数据表索引操作;由被写数据的操作触发的目标表中触发器的操作。也就是说在目标表上进行被写数据的操作,判断被写数据的操作是否触发关联操作,若是,则执行关联操作。上述关联操作同样被记载在WAL中。并且被写数据的操作结果还包括关联操作的操作结果,也即如果关联操作的结果为失败的情况下,认为被写数据的操作结果失败。
步骤S110,若写入结果为失败,则对写入操作进行回滚,并检查索引的数据确认配置。对写入操作进行回滚的步骤可以包括:以回滚标记点为起点搜索预写日志中写入操作对应事务的条目;根据搜索出的条目进行数据回滚。对写入操作进行回滚的步骤还包括:对关联操作进行回滚。
由于具有上述回滚标记点,可以确定出WAL中,通过事务标识等手段确定出预写日志中被写数据对应事务的条目。批量操作中,操作可以为并行操作,通过WAL搜索对应事务的条目,可以确定出针对于该行写入操作及其关联操作。
对于写入操作,在一般情况下可以直接将写入的该元组直接置为无效,相比于直接删除新插入的元组,可以提高数据库的回滚处理效率。也就是说,在一般情况下,可以从预写日志中获取数据写入位置;按照数据写入位置将对应数据标识为无效。在某些特殊情况下,例如数据不允许置为无效或者配置有其他校验手段的情况下,可以直接删除新插入的元组。对于数据删除操作,可以恢复被删除的元组。对于数据变更操作,可以将数据恢复被变更之前的状态。也即对于数据删除操作、数据变更操作,可以从预写日志中获取写入前的数据信息,并恢复至数据删除操作和/或数据变更操作执行之前的状态。
关联操作出现的错误,可以根据关联操作的类型进行后续处理,例如对于由被写数据的操作触发的目标数据表中触发器的操作,并且对触发器操作进行回滚的步骤还包括:回滚触发器的操作,以将数据库恢复至触发器被触发之前的状态。
步骤S112,若数据确认配置为需要确认,则将索引回滚至更新之前的状态。数据确认配置为不需确认的情况下也可以维持索引的状态。也就是说由被写数据的操作触发的目标数据表索引操作的情况下,如果数据库系统没有配置回表确认索引关联的数据是否存在的逻辑,可以不需要做进一步处理,从而节省回滚操作。如果数据库系统配置有回表确认索引关联的数据是否存在的逻辑,可以回滚目标数据表索引操作,以将索引恢复至被写数据的操作触发索引操作之前的状态。
本实施例的数据库的数据写入错误的处理方法,在批量写入操作过程中,如果被写入的目标数据表配置有索引,如果出现某行数据写入错误,则检查索引的数据确认配置;若数据确认配置为需要确认,则将索引回滚至更新之前的状态。从而在数据库系统配置回表确认索引关联的数据是否存在的逻辑的情况下,这对错误写入触发的索引进行回滚,在实现行级回滚的情况下避免了索引报错。
上述的数据库的数据写入错误的处理方法,针对批量数据操作中的每一条被写数据,记录WAL的相应位置,在被写数据的操作失败的情况下,利用WAL搜索得出该条被写数据的错误操作,从而根据WAL确定出错误操作进行回滚,回滚完成后继续完成批量操作。回滚过程不需要回滚段,对于整个批量操作而言,相当于跳过忽略了失败的被写数据,不需要中断整个批量操作,提高了数据库的处理效率。由于通过分析预写日志的信息,进行错误数据回滚,实现原地修改,不需要进行额外空间的分配。
在完成回滚之后,还可以进一步利用行级上下文记录的资源进行回收,避免内存侧资源没有得到有效释放。资源释放后,可以保证系统资源不因为行级错误而泄露。也就是说对批量数据操作中的每行操作的上下文进行记录,在批量数据操作中某条数据的操作出现失败的情况下并对失败操作进行回滚之后,根据记录的上下文释放所述失败操作占用的资源。回收的资源包括:内存上下文、元组描述符、表内存缓存、系统表缓存、缓冲缓存、计划缓存、结果级缓存。
图2是根据本发明一个实施例的数据库的数据写入错误的处理方法的可选流程图。本实施例的方法进行批量数据操作的过程包括:
步骤S202,获取到一行数据。
步骤S204,记录WAL的位置,记为该行数据写入的回滚标记点start。
步骤S206,写入数据,同时写WAL;写入的过程每进行一条数据的写入或者修改(既包含数据元组,也包含系统的元数据元组)都进行预写日志的记录
步骤S208,执行该行数据的操作,判断是否写入成功,如果写入成功,则返回执行步骤S202,进行下一行数据的读取,
步骤S210,搜索WAL,搜索范围为从start到当前事务的最后一条日志;也即搜索条件为:从写前记下的start位置开始搜索;当前事务的预写日志,终止到当前事务最后一条预写日志。搜索范围有限,可以方便快捷地定位所有的错误。
步骤S212,判断搜索是否完成,也即判断是否还存在本事务的日志。如果搜索完成则表示回滚成功,可以返回执行步骤S202,进行下一行数据的读取。搜索完成后就可以将此过程中所有的错误数据都找到。
步骤S214,通过分析搜索得出的日志进行错误数据的回滚;
步骤S216,在批量操作没有下一行数据的情况下,批量写入结束。
上述方法中错误数据搜索出来后的结果是一条条的预写日志。这些日志既包含了本行的错误数据,或是违反了表上的某一种约束,或是此行级触发器执行过程中发生了错误,或是错误的数据导致了行级触发器发生了错误。因此需要将这些错误的写入或者删除行为进行回滚。回滚后继续进行后面行的写入,错误的数据被跳过了一样,但实际上是写入又回滚的过程。
回滚的过程进行的操作包括:对数据元组或者系统数据元组,如果预写日志中记录下了写入数据的位置信息,可原地进行修改,比如插入行的行级指针,那么就可以直接对该行在数据库中标记为无效,或者删除。对索引相关的数据,确定数据库系统有无回表确认索引关联的数据是否存在的逻辑,如果存在则不需要做进一步处理。否则要单独对索引进行回滚操作。由于原地修改不需要进行额外空间的分配。
对于存储相关的修改,如创建表的文件,则需要维护一个单独(行级)的上下文,在发生错误的时候将此上下文上记录的资源进行回收。
在发生行级错误的时候,通常由于后续的执行逻辑被跳过,因此导致很多内存侧的资源没有得到有效的释放,因此需要通过行级的上下文释放这些资源。行级上下文通常包含:内存上下文(并行处理的其他事务)、元组描述符、表的内存、表内存缓存、系统表缓存、缓冲缓存、计划缓存、结果级缓存。上述,需要通过一个单独的实体进行存储,在发生错误的时候,通过该上下文能够索引到这些临时的内存分配情况,并根据需要进行资源的释放,从而保证系统资源不因为行级的错误而泄露。
本申请还提供了一种机器可读存储介质和计算机设备。图3是根据本发明一个实施例的机器可读存储介质30的示意图。图4是根据本发明一个实施例的计算机设备40的示意图。
机器可读存储介质30其上存储有机器可执行程序31,机器可执行程序31被处理器执行时实现上述任一实施例的数据库的数据写入错误的处理方法。
计算机设备40可以包括存储器420、处理器410及存储在存储器420上并在处理器410上运行的机器可执行程序31,并且处理器410执行机器可执行程序31时实现上述任一实施例的数据库的数据写入错误的处理方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质30可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。机器可读存储介质30的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质30甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备40可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备40可以是云计算节点。计算机设备40可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备40可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备40可以包括适于执行存储的指令的处理器410、在操作期间为所述指令的操作提供临时存储空间的存储器420。处理器410可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器420可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器410可以通过系统互连(例如PCI、PCI-Express等)连接到适于将计算机设备40连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备40的内置组件,或者可以是外部连接到计算设备的设备。
处理器410也可以通过系统互连链接到适于将计算机设备40连接到显示设备的显示接口。显示设备可以包括作为计算机设备40的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备40的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备40连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括关联操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。

Claims (10)

1.一种数据库的数据写入错误的处理方法,包括:
获取批量写入操作的一行数据;
确定要写入的目标数据表;
在所述目标数据表中执行该行数据的写入操作,并对所述目标数据表的索引进行更新;
获取所述写入操作的写入结果;
若写入结果为失败,则对所述写入操作进行回滚,并检查所述索引的数据确认配置;
若所述数据确认配置为需要确认,则将所述索引回滚至更新之前的状态。
2.根据权利要求1所述的数据库的数据写入错误的处理方法,其中,在所述数据确认配置为不需确认的情况下还包括:维持所述索引的状态。
3.根据权利要求1所述的数据库的数据写入错误的处理方法,其中,在所述目标数据表中执行该行数据的写入操作的步骤之后还包括:
获取所述目标数据表上预先定义的索引;
判断所述写入操作是否触发索引更新;
若是,执行对所述目标数据表的索引进行更新的操作。
4.根据权利要求1所述的数据库的数据写入错误的处理方法,其中,
在所述获取批量写入操作的一行数据的步骤之后还包括:标记所述数据库的预写日志的位置,作为回滚标记点;并且
对所述写入操作进行回滚的步骤包括:以所述回滚标记点为起点搜索所述预写日志中所述写入操作对应事务的条目;根据搜索出的条目进行数据回滚。
5.根据权利要求4所述的数据库的数据写入错误的处理方法,其中,
在所述目标数据表中执行该行数据的写入操作的步骤之后还包括:判断所述写入操作是否触发关联操作;若是,在所述预写日志中记录所述关联操作,并执行所述关联操作。
6.根据权利要求5所述的数据库的数据写入错误的处理方法,其中,所述执行所述关联操作的步骤之后还包括:
获取所述关联操作的操作结果;在所述关联操作的操作结果为失败的情况下,认定所述写入操作的写入结果为失败。
7.根据权利要求5所述的数据库的数据写入错误的处理方法,其中,所述对所述写入操作进行回滚的步骤还包括:
对所述关联操作进行回滚。
8.根据权利要求4所述的数据库的数据写入错误的处理方法,其中
在所述写入结果为成功的情况下,还包括:
读取所述批量写入操作的另一行数据,并记录所述预写日志的位置,作为另一回滚标记点。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库的数据写入错误的处理方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库的数据写入错误的处理方法。
CN202211666723.6A 2022-12-23 2022-12-23 数据库的数据写入错误的处理方法、存储介质与设备 Pending CN116204354A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211666723.6A CN116204354A (zh) 2022-12-23 2022-12-23 数据库的数据写入错误的处理方法、存储介质与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211666723.6A CN116204354A (zh) 2022-12-23 2022-12-23 数据库的数据写入错误的处理方法、存储介质与设备

Publications (1)

Publication Number Publication Date
CN116204354A true CN116204354A (zh) 2023-06-02

Family

ID=86508542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211666723.6A Pending CN116204354A (zh) 2022-12-23 2022-12-23 数据库的数据写入错误的处理方法、存储介质与设备

Country Status (1)

Country Link
CN (1) CN116204354A (zh)

Similar Documents

Publication Publication Date Title
US8108343B2 (en) De-duplication and completeness in multi-log based replication
EP3111347B1 (en) Efficient methods and systems for consistent read in record-based multi-version concurrency control
US10671642B2 (en) Copying data changes to a target database
US8874515B2 (en) Low level object version tracking using non-volatile memory write generations
US8560500B2 (en) Method and system for removing rows from directory tables
CN111259004B (zh) 一种存储引擎中数据索引的方法以及相关装置
CN116089394A (zh) 数据库的数据回滚方法、存储介质与设备
US11567839B2 (en) Snapshot-based data corruption detection
CN108280097B (zh) 一种数据库系统的故障处理方法和装置
JP2019528493A (ja) 電子装置、名簿エントリの重複排除方法及びコンピュータ読み取り可能な記憶媒体
US11138182B2 (en) Compensating data corruption causing actions at runtime
CN111694853A (zh) 基于世系的数据增量采集方法、装置、存储介质和电子设备
CN116204354A (zh) 数据库的数据写入错误的处理方法、存储介质与设备
CN111240891A (zh) 基于数据库多表间数据一致性的数据恢复方法及装置
CN115469810A (zh) 一种数据获取方法、装置、设备及存储介质
CN116226079A (zh) 数据库的数据操作错误的处理方法、存储介质与设备
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN112148714A (zh) 数据监控方法、系统、存储介质及电子设备
CN114443625A (zh) 数据库的处理方法、装置
CN112749156A (zh) 数据处理方法、数据库管理系统和数据处理设备
CN112084161B (zh) 基于数据库的数据处理方法、装置以及可读存储介质
CN115878563B (zh) 一种分布式文件系统目录级快照的实现方法及电子设备
CN118034982A (zh) 数据库批量操作的错误处理方法、存储介质及产品
CN113672277B (zh) 代码同步方法、系统、计算机设备和存储介质
CN114610644A (zh) 测试数据库的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination