一种基于硬件保护的事务处理方法技术

技术编号:29934841 阅读:17 留言:0更新日期:2021-09-04 19:09
本发明专利技术涉及数据库事务处理技术领域,尤其涉及一种基于硬件保护的事务处理方法,包括以下步骤:S1、设置属性:使用set transaction语句来设置事物的各种属性,并设置innodb_flush_log_at_trx_commit和sync_binlog的值都为1;S2、提交事务:2

【技术实现步骤摘要】
一种基于硬件保护的事务处理方法


[0001]本专利技术涉及数据库事务处理
,尤其涉及一种基于硬件保护的事务处理方法。

技术介绍

[0002]事务处理是一种机制,是用来管理必须成批执行的数据库语句的操作,以保证数据库不包含不完整的操作结果。
[0003]事务提交是指将未存储的SQL语句结果写入数据库,事务回滚是指撤销指定的SQL语句的过程,保存点是指事物处理中设置的临时占位符,你可以对它发布回滚指令,但在Oracle数据库中,绝大部分事务的处理都是在单个数据库中进行,以至于在遇到多个数据库交叉事务的时候,极易出现问题。因此,我们提出了一种基于硬件保护的事务处理方法用于解决上述问题。

技术实现思路

[0004]本专利技术的目的是为了解决现有技术中存在的缺点,而提出的一种基于硬件保护的事务处理方法。
[0005]一种基于硬件保护的事务处理方法,包括以下步骤:
[0006]S1、设置属性:使用set transaction语句来设置事物的各种属性,并设置innodb_flush_log_at_trx_commit和sync_binlog的值都为1;
[0007]S2、提交事务:
[0008]2‑
1:在回滚段内记录当前事务已提交,并且声称一个唯一的系统编号SCN;
[0009]2‑
2:启动后台的日志写入进程,将SGA区的重做日志缓冲区中的数据和当前事务的SCN写入重做日志;
[0010]2‑
3:Oracle服务器开始释放事务处理所使用的系统资源;
[0011]2‑
4:显示通知,告诉用户事务已经提交成功;
[0012]S3、创建保存点:使用savepoint语句对S1中的事务创建事务保存点;
[0013]S4、回滚事务:
[0014]4‑
1:使用回滚段中的数据撤销对数据库所做的修改;
[0015]4‑
2:Oracle后台服务进程释放掉事务所使用的系统资源;
[0016]4‑
3:显示通知,告诉用户事务已经回滚成功;
[0017]其中,提交事务时,同时向多个数据库提交子事务,各个数据库单独完成各自子事务后,方能触发2

4步骤,否则,直接触发S4步骤,回滚至上一事务保存点。
[0018]优选的,所述属性包括Insert、Delete、Select和Update四种类别。
[0019]优选的,所述回滚事务的过程中,回滚语句包括rollback to savepoint语句和rollback语句。
[0020]优选的,使用所述rollback to savepoint语句可回滚到指定的事务保存点,丢弃
保存点后创建的事务,使用rollback语句则是回滚整个事务。
[0021]相比于现有技术,本专利技术的有益效果是:
[0022]本专利技术中,同时向多个数据库发送创建事务的指令,令各个数据库单独进行对应的指令,当所有数据库都完成了各自指令时,才能提交事务,显示完成,而当其中一个数据库出现事务提交错误时,则直接令全部数据库的数据回滚至上一事务保存点,以此保证了事务处理的保护性,避免硬件的损坏。
附图说明
[0023]图1为本专利技术一种基于硬件保护的事务处理方法的流程示意图;
[0024]图2为本专利技术一种基于硬件保护的事务处理方法的事务提交完成示意图。
具体实施方式
[0025]下面结合具体实施例对本专利技术作进一步解说。
[0026]实施例1:
[0027]S1、设置属性:使用set transaction语句来设置事物的各种属性,并设置innodb_flush_log_at_trx_commit和sync_binlog的值都为1,属性包括Insert、Delete、Select和Update;
[0028]S2、提交事务:
[0029]2‑
1:在回滚段内记录当前事务已提交,并且声称一个唯一的系统编号SCN;
[0030]2‑
2:启动后台的日志写入进程,将SGA区的重做日志缓冲区中的数据和当前事务的SCN写入重做日志;
[0031]2‑
3:Oracle服务器开始释放事务处理所使用的系统资源;
[0032]2‑
4:显示通知,告诉用户事务已经提交成功;
[0033]S3、创建保存点:使用savepoint语句对S1中的事务创建事务保存点;
[0034]S4、回滚事务:
[0035]4‑
1:使用回滚段中的数据撤销对数据库所做的修改;
[0036]4‑
2:Oracle后台服务进程释放掉事务所使用的系统资源;
[0037]4‑
3:显示通知,告诉用户事务已经回滚成功;
[0038]其中,提交事务时,同时向多个数据库提交子事务,各个数据库单独完成各自子事务后,方能触发2

4步骤,否则,直接触发S4步骤,通过rollback to savepoint语句回滚至上一事务保存点。
[0039]实施例2:
[0040]S1、设置属性:使用set transaction语句来设置事物的各种属性,并设置innodb_flush_log_at_trx_commit和sync_binlog的值都为1,属性包括Insert、Delete、Select和Update;
[0041]S2、提交事务:
[0042]2‑
1:在回滚段内记录当前事务已提交,并且声称一个唯一的系统编号SCN;
[0043]2‑
2:启动后台的日志写入进程,将SGA区的重做日志缓冲区中的数据和当前事务的SCN写入重做日志;
[0044]2‑
3:Oracle服务器开始释放事务处理所使用的系统资源;
[0045]2‑
4:显示通知,告诉用户事务已经提交成功;
[0046]S3、创建保存点:使用savepoint语句对S1中的事务创建事务保存点;
[0047]S4、回滚事务:
[0048]4‑
1:使用回滚段中的数据撤销对数据库所做的修改;
[0049]4‑
2:Oracle后台服务进程释放掉事务所使用的系统资源;
[0050]4‑
3:显示通知,告诉用户事务已经回滚成功;
[0051]其中,提交事务时,同时向多个数据库提交子事务,各个数据库单独完成各自子事务后,方能触发2

4步骤,否则,直接触发S4步骤,通过rollback to savepoint语句回滚至上一事务保存点。
[0052]当需要回滚整个事务时,直接使用rollback语句,将回滚整个事务。
[0053]上述实施例1和实施例2中,在多个数据库交叉事务的过程中,判断是否触发事务完成的规则如下:
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于硬件保护的事务处理方法,其特征在于,包括以下步骤:S1、设置属性:使用set transaction语句来设置事物的各种属性,并设置innodb_flush_log_at_trx_commit和sync_binlog的值都为1;S2、提交事务:2

1:在回滚段内记录当前事务已提交,并且声称一个唯一的系统编号SCN;2

2:启动后台的日志写入进程,将SGA区的重做日志缓冲区中的数据和当前事务的SCN写入重做日志;2

3:Oracle服务器开始释放事务处理所使用的系统资源;2

4:显示通知,告诉用户事务已经提交成功;S3、创建保存点:使用savepoint语句对S1中的事务创建事务保存点;S4、回滚事务:4

1:使用回滚段中的数据撤销对数据库所做的修改;4

...

【专利技术属性】
技术研发人员:郑金聪
申请(专利权)人:厦门时代风科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1