[发明专利]数据库的数据操作错误的处理方法、存储介质与设备在审
申请号: | 202211666236.X | 申请日: | 2022-12-23 |
公开(公告)号: | CN116226079A | 公开(公告)日: | 2023-06-06 |
发明(设计)人: | 季业;王建华 | 申请(专利权)人: | 北京人大金仓信息技术股份有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F11/14;G06F11/34 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 刘长江 |
地址: | 100102 北京市朝阳区容*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 数据 操作 错误 处理 方法 存储 介质 设备 | ||
本发明提供了一种数据库的数据操作错误的处理方法、存储介质与设备。其中数据库的数据操作错误的处理方法包括:启动批量数据操作,对批量数据操作中的每行操作的上下文进行记录;执行对批量数据操作,并监测操作结果;在批量数据操作中某条数据的操作出现失败的情况下,对失败操作进行回滚;根据记录的上下文释放失败操作占用的资源。本发明的方案,在批量数据操作中某条数据的操作出现失败的情况下并对失败操作进行回滚之后,根据记录的上下文释放失败操作占用的资源,从而保证系统资源不因为行级的错误而泄露。
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库的数据操作错误的处理方法、存储介质与设备。
背景技术
现有数据库管理系统中会通过批量更改提升性能。这些批量更改包括:批量的插入(insert),批量的删除(delete),批量的修改(update)以及批量加载。但是数据库表上的约束或者触发器有可能中断批量操作,导致整个事务回滚。在这种情况下,已经写入的数据就会被丢弃,这会导致存储空间、读写资源的浪费以及数据库的实际体验的下降。即使少量的数据错误也会导致整个批处理任务失败。
针对上述问题,数据库系统会建立适当的容错机制。当出现错误的情况下跳过这个错误的操作以及该错误行触发的相关修改,继续进行其后的修改。通常由于后续的执行逻辑被跳过,因此导致很多内存侧的资源没有得到有效的释放。这可能会导致资源泄露。
发明内容
本发明的一个目的是要提供一种能够解决上述任一问题的数据库的数据操作错误的处理方法、存储介质与设备。
本发明一个进一步的目的是要避免因行级数据操作错误引发资源泄露。
本发明另一进一步的目的是要要不引入回滚段的情况下通过解析预写日志(Write-Ahead Logging,简称WAL)实现错误操作的回滚。
特别地,本发明提供了一种一种数据库的数据操作错误的处理方法,包括:
启动批量数据操作,对批量数据操作中的每行操作的上下文进行记录;
执行对批量数据操作,并监测操作结果;
在批量数据操作中某条数据的操作出现失败的情况下,对失败操作进行回滚;
根据记录的上下文释放失败操作占用的资源。
可选地,根据记录的上下文释放失败操作占用的资源的步骤包括:
根据上下文索引预设类型的资源分配信息;
按照资源分配信息释放对应的资源。
可选地,预设类型的资源分配信息包括以下任一种或多种资源的信息:内存上下文、元组描述符、表内存缓存、系统表缓存、缓冲缓存、计划缓存、结果级缓存。
可选地,执行对批量数据操作并监测操作结果的步骤包括:
读取批量数据操作中一条被操作元组,并记录预写日志的位置,作为被操作元组的操作起始位置;
执行对被操作元组的操作,并在执行过程中进行预写日志的记录;
获取被操作元组的操作结果。
可选地,执行对被操作元组的操作的步骤包括:确定数据库被操作的目标表,在目标表上进行被操作元组的操作,判断被操作元组的操作是否触发关联操作,若是,则执行关联操作,并且
获取被操作元组的操作结果的步骤还包括:获取关联操作的操作结果;在关联操作的操作结果为失败的情况下,认定被操作元组的操作结果为失败。
可选地,关联操作包括:
由被操作元组的操作触发的目标表索引操作;和/或
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211666236.X/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置