首页 > 数据库 >oracle事务

oracle事务

时间:2024-06-19 15:23:30浏览次数:25  
标签:事务 数据库 提交 oracle commit redo

1 事务的概念

事务是将数据库从一种一致性状态转变为另外一种一致性状态

2 事务的四个特征(ACID)

  • 原子性(Atomicity):事务的所有执行要么一起成功,要么一起失败
  • 一致性(Consistency):事务将数据从一种一致性状态转为另外一种一致性状态
  • 隔离性(Isolation):事务中所有修改未提交的数据对其他事务是不可见的
  • 持久性(Durability):事务一旦提交,数据就永久保存

2.1 DDL与原子性

DDL语句执行之前,会先自动执行一个commit,再执行DDL语句本身。

2.2 COMMIT_WAIT与持久性

oracle的持久性是依靠redo来保证的。一般情况下,commit执行时,只有数据对应的redo缓存写入到redo在线重做日志后,才会给客户端返回commit成功的信息。
COMMIT_WAIT参数有三个值WAIT、NOWAIT和FORCE_WAIT。当COMMIT_WAIT设置为NOWAIT时,commit执行时数据库无需等待redo缓存写入到redo在线重做日志,直接给客户端返回commit成功的信息。但是,这样子做,无法保证数据的持久性。因为此时commit成功,redo缓存并没有写入到redo在线重做日志。如果此时数据库突然关闭,这次修改的数据无法通过redo进行恢复。

3 分布式事务

有时候,我们会使用DBLINK联合其他服务器上的oracle数据库执行一个事务。这种分布式事务,oracle是通过2PC(Two-Phase Commit Protocol,两阶段提交协议)实现事务的原子性的。2PC原理是oracle在处理分布式事务时,会指定一个数据库作为协调者,这个协调者在提交事务时,会询问各个数据库是否做好提交。如果每个数据库都回复确定提交,协调者告诉各个数据库进行提交。如果其他数据库有回复不可以提交,则协调者会让各个数据库进行回滚。

标签:事务,数据库,提交,oracle,commit,redo
From: https://www.cnblogs.com/study9196/p/18254137

相关文章

  • Elasticsearch 的事务日志
    translog是Elasticsearch保证数据可靠性和灾难恢复的重要组件,每个索引分片配备一个translog,对索引数据的增加、更新操作都会记录在translog中。translog本质上是一个可滚动的日志文件,相比于lucene的写入,日志文件的写入是一个相对轻量的操作,translog会定期地sync到磁......
  • Oracle DataGuard异常处理【ORA-01119 ORA-17502 ORA-15041】→【ORA-01111 ORA-01110
    收到用户反馈DG上查不到最近一天的数据,怀疑同步有问题一、检查备库同步情况两个节点都未看到MRP0进程SQL>selectprocess,status,thread#,sequence#fromv$managed_standby;PROCESS STATUS THREAD# SEQUENCE#---------------------------------------......
  • 事务&AOP
    事物管理事务管理是指对一系列数据库操作进行管理,确保这些操作要么全部成功执行,要么在遇到错误时全部回滚,以维护数据的一致性和完整性。在多用户并发操作和大数据处理的现代软件开发领域中,事务管理已成为确保数据一致性和完整性的关键技术之一。基本概念定义:事务是由N步数据......
  • springboot 使用 doris-streamloader 到doris 防止批量更新 事务卡主
    背景:使用mybatis批量实时和更新doris时经常出现连接不上的错误,导致kafka死信队列堆积很多滞后消费https://doris.apache.org/zh-CN/docs/2.0/ecosystem/doris-streamloader/packagecom.jiaoda.sentiment.data.etl.service.update;importcn.hutool.core.text.CharSequenc......
  • 【Spring注解】事务注解@Transactional
    @Transactional作用:就是在当前这个方法执行开始之前来开启事务,方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作@Transactional注解书写位置:方法当前方法交给spring进行事务管理类当前类中所有的方法都交由spring进行事务管......
  • Oracle数据库修复利器:DBMS_REPAIR包详解与实战
    在Oracle数据库中,数据文件的完整性和稳定性对于系统的正常运行至关重要。然而,由于各种原因(如硬件故障、软件错误等),数据文件有时会出现损坏,导致数据丢失或系统崩溃。为了应对这种情况,Oracle提供了DBMS_REPAIR包,这是一个强大的工具,可以帮助我们发现、标识并修复数据文件中的坏块。......
  • ADO.NET 事务操作封装
    ///<summary>///事务处理///</summary>///<paramname="sqlList">sql语句数组</param>///<returns></returns>///<exceptioncref="Exception"></exception>publicstaticboolOpenTransation(List......
  • 使用 Apache JMeter 事务控制器的详细指南
    简介ApacheJMeter是一个用于负载测试和性能测试的强大开源工具。逻辑控制器(LogicControllers)是JMeter的重要组成部分,帮助用户定义请求的执行逻辑。事务控制器(TransactionController)是一种常用的逻辑控制器,用于将多个请求组合在一起,并将它们作为一个单独的事务进行计时。本......
  • kafka事务流程
    流程kafka事务使用的5个API//1.初始化事务voidinitTransactions();//2.开启事务voidbeginTransaction()throwsProducerFencedException;//3.在事务内提交已经消费的偏移量(主要用于消费者)voidsendOffsetsToTransaction(Map<TopicPartition,OffsetAndMetadata>......
  • Oracle 12C的闪回技术详解
    1闪回技术介绍闪回技术是oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还......