事务管理:事务的状态相关知识笔记

举报
IT技术分享社区 发表于 2023/01/16 22:42:19 2023/01/16
1.1k+ 0 0
【摘要】  1、事务的几个概念中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。已提交事务:成功执行完成的事务称为已提交事务。已提交的事务不能进行回滚操作,必须由程序员手工执行一个补偿事务才能撤销提交的事务对数据库的影响。2、事务的状态 事务执行的情况:事务成功执行,数据库进入一个新的一致状态;事务因为...

db.jpg

 

1、事务的几个概念

中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。
事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。
已提交事务:成功执行完成的事务称为已提交事务。已提交的事务不能进行回滚操作,必须由程序员手工执行一个补偿事务才能撤销提交的事务对数据库的影响。

2、事务的状态 

事务执行的情况:事务成功执行,数据库进入一个新的一致状态;事务因为故障或其他原因未能够成功执行,这个时候数据库处于不一致状态,需要对未成功执行的事务造成的变更进行回滚操作,即事务回滚。

2.1 事务的五种状态

  • 活动状态:事务的初始状态,事务执行时处于这个状态。
  • 部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态。此时事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成之前还有可能出现硬件故障,事务仍有可能中止的情况。因此部分提交状态不表示事务一定成功执行。
  • 失败状态:因为硬件或逻辑等错误,使得事务不能继续正常执行,事务就会进入失败状态,然后必须执行回滚操作,然后事务就进入中止状态。
  • 中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。
  • 提交状态:事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才表明事务已经提交。

2.2 事务的状态转换 

 begin transation:开始执行事务,使得事务处于活动状态。
  • end transation:表示事务中所有对数据库的操作都已经完成。
  • commit transation:标志事务已经成功完成。、,事务中对数据库的操作已经安全存入数据库,事务进入提交状态,结束事务的运行。
  • abort transaction:标志事务进入失败状态,系统撤销事务中所有操作对数据库的影响,结束事务的运行。

2.3 事务进入中止状态一般会有以下两种选择

1、重启事务:如果事务是因为软、硬件错误引起,不是事务内部逻辑错误所产生时,一般会采用重启事务的方法。重启事务可以理解为一个新的事务。
2、杀死事务:这种选择通常是因为事务中内部逻辑造成的错误或者输入的错误。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。