【技术实现步骤摘要】
数据处理方法、数据库管理系统和数据处理设备
本申请涉及数据库
,特别涉及一种数据处理方法、数据库管理系统和数据处理设备。
技术介绍
存储过程(storedprocedure)是存储于数据库系统中的一组能够完成特定功能的语句集,存储过程经过第一次编译后再次调用不需要再次编译,用户可以通过指定存储过程的名字来运行存储过程。存储过程重试,是当存储过程执行失败时的重试机制,可以避免因硬件故障或软件故障导致用户业务发生中断。事务(transaction)是数据库系统中作为单个逻辑工作单元执行的操作序列,这些操作要么全部执行要么全不执行,是一个不可分割的工作单元。例如在关系型数据库中,一个事务可以是一条结构化查询语言(structuredquerylanguage,SQL)语句、一组SQL语句或整个程序。存储过程可能包含一个或多个事务。现有技术中,数据库驱动根据用户发送的工作请求,调用指定存储过程以响应用户的请求,当存储过程执行失败,且失败原因为可恢复性异常时,数据库驱动向数据库(database,DB)内核发送重试请求,获取正确的处理结果后响应给用户。由此可以屏蔽部分硬件、软件错误,提升用户体验。由于现有技术中,数据库驱动获取调用的存储过程执行是否成功,当存储过程执行失败时,重试只能将整个存储过程全部重新执行一遍。当存储过程存在事务提交指令时,存储过程整体重试将导致已经提交的部分操作被重复执行,从而导致数据出错。
技术实现思路
本申请实施例提供了一种数据处理方法,用于存储过程执行失败重 ...
【技术保护点】
1.一种数据处理的方法,其特征在于,包括:/n响应于存储过程请求,执行存储过程,所述存储过程包括一个或多个有序的事务;/n当所述一个或多个有序的事务中的第一事务执行结束时,记录所述第一事务的标记信息;/n基于执行所述存储过程中出现异常,且满足重试所述存储过程的条件,根据所述第一事务的标记信息重试所述存储过程中所述第一事务之后的事务。/n
【技术特征摘要】
1.一种数据处理的方法,其特征在于,包括:
响应于存储过程请求,执行存储过程,所述存储过程包括一个或多个有序的事务;
当所述一个或多个有序的事务中的第一事务执行结束时,记录所述第一事务的标记信息;
基于执行所述存储过程中出现异常,且满足重试所述存储过程的条件,根据所述第一事务的标记信息重试所述存储过程中所述第一事务之后的事务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录调用所述存储过程的请求语句。
3.根据权利要求1或2所述的方法,其特征在于,所述标记信息包括所述第一事务的结束语句的行号。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
记录所述存储过程的中间状态信息,所述中间状态信息包括以下一个或多个:所述第一事务的执行语句结果、错误提示信息、输入参数、输出参数、全局变量和临时变量。
5.根据权利要求4所述的方法,其特征在于,所述中间状态信息包括第一事务的执行语句结果或错误提示信息,所述方法还包括:
缓存所述第一事务的执行语句结果或错误提示信息,直至所述第一事务结束之后,再将所述执行语句结果或错误提示信息发送给用户设备。
6.根据权利要求4所述的方法,其特征在于,所述中间状态信息包括第一事务的执行语句结果或错误提示信息,所述方法还包括:
缓存所述第一事务的执行语句结果或错误提示信息,直至所述存储过程结束之后,再将所述执行语句结果或错误提示信息发送给用户设备。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一事务位于所述存储过程中的分支语句的一个分支,所述方法还包括:
记录所述存储过程的中间状态信息,所述中间状态信息包括分支执行状态,所述分支执行状态用于标识所述第一事务所在的分支;
重试所述存储过程中所述第一事务之后的事务包括:基于所述分支执行状态,执行所述第一事务所在的分支中第一事务之后的事务。
8.根据权利要求7所述的方法,其特征在于,
所述分支执行状态包括执行所述存储过程中所述分支语句的条件判断结果。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述重试所述存储过程的条件为所述存储过程异常为可恢复性异常,所述可恢复性异常包括:网络异常、内存使用异常、输入输出异常、锁等待超时异常或两阶段事务提交异常。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述重试所述存储过程中所述第一事务之后的事务包括:
等待预设的第一时长后,重试所述存储过程中所述第一事务之后的事务。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
当所述一个或多个有序的事务中的第二事务执行结束时,记录所述第二事务的标记信息,所述第二事务为在所述第一事务之后执行的事务;
所述重试所述存储过程中所述第一事务之后的事务包括:
根据所述第二事务的标记信息重试所述存储过程中所述第二事务之后的事务,所述第二事务为满足重试所述存储过程的条件时,已执行事务中最后被执行的事务。
12.一种数据库管理系统,其特征在于,包括:
执行单元,用于响应于存储过程请求,执行存储过程,所述存储过程包括一个或多个有序的事务;
记录单元,用于当所述一个或多个有序的事务中的第一事务执行结束时,记录所述第一事务的标记信息;
重试单元,用于基于执行所述存储过程中出现异常,且满足重试所述存储过程的条件,根据所述第一事务的标记信息重试所述存储过程中所述第一事务之后的事务。
13.根据权利要求12所述的数据库管理系统,其特征在于,...
【专利技术属性】
技术研发人员:于巍,李国良,张金玉,董亚辉,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。