前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.8-闪回事务技术

【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.8-闪回事务技术

作者头像
江中散人_Jun
发布2024-06-12 08:20:28
800
发布2024-06-12 08:20:28
举报

1 闪回事务(Flashback Transaction)

        到目前为止,介绍的所有功能均不会直接将数据恢复为“以前”的样子。闪回查询只是查看,闪回数据归档只是延伸了闪回查询的时间窗口,闪回事务查询虽然提供了撤销SQL,但是否执行及如何执行还需要管理员进一步手动操作。

        若是管理员决定撤销某个或某些事务,Oracle提供一个专门用来撤销事务的工具——闪回事务。

1.1 闪回事务概念概述

        闪回事务又名撤销事务(Backout Transaction),能够撤销一个或多个事务的修改,其功能由一个名为DBMS_FLASHBACK.TRANSACTION_BACKOUT的存储过程实现。该存储过程的工作原理是自动分析重做日志,挖掘出变更前的值用以构建撤销SQL(Undo SQL),然后执行撤销SQL最后达到撤销事务的目的。

        为使用该功能,至少需要事先启用主键补充日志。另外,为了能够跟踪外键依赖还需要启用外键补充日志。

        闪回事务是利用存储过程dbms_flashback.transaction_backout 来回滚某个事务。其回退的原理是利用undo日志逻辑撤销事务的影响,并根据选项决定是否一并撤销依赖其的子事务。

1.2 事务的依赖性

        在继续讨论此功能前,首先应了解一个概念:事务的依赖性。比如,两个事务TX1和TX2,符合以下3个条件的任意一个就可以认为TX2依赖TX1:

  • WAW依赖(Write After Write):在TX1修改了表的某行之后,TX2又修改了同一行。
  • 主键依赖:在一张拥有主键的表中TX1首先删除了一行,之后TX2又插入了具有相同主键值的另一行。
  • 外建依赖:由于TX1的修改(insert或update)而产生了新的可被外键参考的字段值,之后TX2修改(insert或update)外键字段时利用了TX1所产生的字段值。

        了解事务依赖性有助于解决在撤销事务时遇到的矛盾,以主键依赖为例,试想若直接将事务TX1撤销并且不理会事务TX2,岂不

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 闪回事务(Flashback Transaction)
    • 1.1 闪回事务概念概述
      • 1.2 事务的依赖性
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档