返回顶部
首页 > 资讯 > 数据库 >Oracle 11g R2 事物的控制
  • 198
分享到

Oracle 11g R2 事物的控制

2024-04-02 19:04:59 198人浏览 泡泡鱼
摘要

控制事务 银行转账 李四给张三汇款 ACID A:原子性:整个事务中所有的步骤是不可分割的,原子性原则规定一个事务的各个步骤都必须完成,否则整个事务都不会完成。即保证一个事务中所有的操作都能完成或者都不能完

控制事务

银行转账

李四给张三汇款

ACID

A:原子性:整个事务中所有的步骤是不可分割的,原子性原则规定一个事务的各个步骤都必须完成,否则整个事务都不会完成。即保证一个事务中所有的操作都能完成或者都不能完成,如果事务在完成之前出现任何错误,那么数据库自身必须保证自动回滚所做过的任何事务部分(并且必须自动进行)

C:一致性:无论是事务前,事务中,事务后,数据始终处于一致的状态。例如李四给张三汇款10000,那么就需要从李四账户减去10000,给张三的账户增加10000。oracle使用撤销段来保证数据的一致性。

I:隔离性:隔离性的原则规定,未完成的事务必须不可视。在某个事务进行期间,只有执行该事务的会话能看见所做的变化,而其他所有的会话看见的都是没有变化的数据(而不是更改后的新值)。这个规定的逻辑含义是:首先,由于整个事务可能没有全部完成,因此不允许其他用户看到可能回滚的变化;其次,在某个事务进行期间,数据是不连贯的,李四的账户减掉10000,但张三的账户还没有增加10000。事务的隔离性要求数据库必须对其他用户隐藏正在进行的事务,这些用户只能看到没有被更新的数据,只有在事务完成时,他们才能看到所有变化。Oracle使用撤销段来保证事务的隔离性。

创建练习环境:创建一个aa表,插入3条记录,并提交事物。
Oracle 11g R2 事物的控制
查看aa表的记录,插入一条记录,当我们执行一条DML语句时候,就自动开始了一个事物
Oracle 11g R2 事物的控制
此时insert记录的事务并没有提交,没有提交事务就没有真正的完成,此时还有rollback的机会。

Scott用户在当前会话中查看aa表时可以看到被插入的记录
Oracle 11g R2 事物的控制
打开一个新的sqlplus会话,查看aa表时会发现并没有新插入的记录:这是事物的隔离性
Oracle 11g R2 事物的控制
在第一个sqlplus会话中提交事物
Oracle 11g R2 事物的控制
提交之后才能在第二个会话中看到被插入的第四条记录
Oracle 11g R2 事物的控制
D:持久性:一旦使用commit命令来结束某个事务,那么就必须保证数据库不丢失这个事务。在事务进行期间,隔离性的原则要求除了指定会话涉及的用户之外的任何用户都不能查看当前所做的变化。不过事务一旦完成,所有用户都必须能够立即看到所做的变化,同时数据库必须保证这些变化绝不会丢失。Oracle通过使用日志文件来满足这个需求。日志文件具有两

种形式:联机重做日志文件,归档重做日志文件。

一个正确配置的oracle数据库是不可能丢失数据的。当然用户的错误(包括不恰当的DML或删除对象)也会造成数据的丢失

DDL语句有自动提交功能(create、drop、truncate、alter)
Oracle 11g R2 事物的控制
创建表AA,插入一条记录
Oracle 11g R2 事物的控制
回退事物
Oracle 11g R2 事物的控制
在表中插入一条记录
Oracle 11g R2 事物的控制
在sqlplus中正常退出
Oracle 11g R2 事物的控制
在另外一个sqlplus中查看aa表中的记录,会发现新插入的tom1的记录了。如果使用sqlplus工具更改了数据之后,正常退出sqlplus时,oracle会自动提交事物。
Oracle 11g R2 事物的控制
目前aa表中只有tom1的记录
Oracle 11g R2 事物的控制
模拟实例重启
Oracle 11g R2 事物的控制
使用scott用户连接,查看aa表中的内容,发现insert tom2的记录由于实例重启自动被回滚了。
Oracle 11g R2 事物的控制
使用autocommit实现事物的自动提交
Oracle 11g R2 事物的控制
即使执行回滚,查询结果仍然包含新插入的数据,关闭自动提交时可以使用set autocommit off
Oracle 11g R2 事物的控制
关于事物的总结

  1. 需要注意的是,Commit:只是用来确认这个数据已经正式的修改了,不一定非得写入硬盘,DBWn什么都不做。执行commit命令时发生的所有物理操作时LGWR进程将日志缓冲区的内容写入磁盘。DBWN进程完全没有执行任何操作。DBWN进程与提交事物处理没有关系,不过最终DBWN进程会将变化的数据块写入磁盘。

  2. commit和rollback语句只应于DML语句,我们无法回滚DDL语句。DDL语句一旦被执行就会立即具有持久状态。

3.自动提交和隐式提交:oracle在某些情况下可以进行自动提交:执行DDL语句是一种情况,退出某个用户进程也是一种自动提交。

如果对此有兴趣,请扫下面二维码免费获取更多详情
Oracle 11g R2 事物的控制

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 11g R2 事物的控制

本文链接: https://lsjlt.com/news/37262.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle 11g R2 事物的控制
    控制事务 银行转账 李四给张三汇款 ACID A:原子性:整个事务中所有的步骤是不可分割的,原子性原则规定一个事务的各个步骤都必须完成,否则整个事务都不会完成。即保证一个事务中所有的操作都能完成或者都不能完...
    99+
    2024-04-02
  • Oracle 11g R2 管理控制文件
    oracle数据库控制文件是非常重要的文件,它是数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息,主要包括以下内容 Ø 数据库的名称,一个控制文件只能属于一个数据库 Ø 数据库创建时间 ...
    99+
    2024-04-02
  • Oracle 11g R2 ADG 监控
    --===============在standby监控DG的恢复过程==================v$managed_standbyv$archived_standbyv$archive_desc_s...
    99+
    2024-04-02
  • Oracle 11g重建控制文件——控制文件全部丢失,从零开始
    控制文件(control file)是一个相当小的文件(最多能增长到64M左右),其中包含Oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知示例数据库和在线重做日志文件...
    99+
    2024-04-02
  • MyBatis中的连接池及事物控制配置过程
    目录1.连接池2.mybatis中的事物1.if语句的设置2.mybatis中的多表查询1.连接池 在实际开发中都会使用连接池因为它可以减少我们获取连接所消耗的时间 连接池就是用于存...
    99+
    2024-04-02
  • oracle 11g的安装注意事项总结
    oracle 11g 安装注意事项 1、首先时这个配置安全更新页面,不需要填写电子邮件,下面安全更新也取消候选,否则一旦出现软件更新,会拖慢我们的使用进度 2、在安装选项这里,就选...
    99+
    2024-04-02
  • Oracle 11g R2常用配置以及日志的文件位置是怎样的
    本篇文章为大家展示了Oracle 11g R2常用配置以及日志的文件位置是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 假设....
    99+
    2024-04-02
  • 在oracle linux6.5 (64bit)下搭建oracle11g r2 rac的注意事项
    1,各个节点的名称(主机名)要设置好。2,推荐用于私有通信的网卡采用双网卡绑定,各个节点的网卡名称要对应一致。3,公共ip、虚拟ip和scan ip必须在同一个网段,私有ip在另一个网段,virtual i...
    99+
    2024-04-02
  • oracle 11G DG物理备库与快照备库的互相转换
    物理备库转换为快照备库:关闭物理备库所的辅助RAC实例(如果是RAC环境)备库保持在mount状态转换成快照备库:alter database convert to snapshot standby;快照备...
    99+
    2024-04-02
  • Java_Spring之Spring中的事务控制
    目录1 Spring 事务控制要明确的内容2 Spring 中事务控制的 API 介绍2.1 PlatformTransactionManager2.2 TransactionDef...
    99+
    2023-05-14
    Java Spring的事务控制 Spring中的事务控制
  • 详解SpringBoot中JdbcTemplate的事务控制
    目录前言原生Jdbc的事务控制Spring的声明式事务控制尝试JdbcTemplate的事务控制TransactionTemplate的编程式事务控制前言 JdbcTemplate是...
    99+
    2024-04-02
  • Spring的事务控制实现方法
    Spring的事务控制实现,供大家参考,具体内容如下 提示:这里使用的是xml的方式配置事务的 前言 例:当银行转账的时候,如果转账和收款的一方出现问题,那么这次的转账则不成功,此处...
    99+
    2024-04-02
  • Spring中的事务控制知识总结
    目录一、环境准备二、基于 XML 的事务控制三、基于注解的事务控制一、环境准备 为了演示 Spring 中的事务控制,我们创建一个空项目,项目目录如下: 导入依赖: <d...
    99+
    2024-04-02
  • 基于XML的Spring声明事务控制
    Spring框架为我们提供好了事务控制器,我们不必自己写事务控制器。下面就详细说明基于XML配置Spring事务控制器的步骤。 1. 配置事务管理器 <!-- 配置事务管理器 ...
    99+
    2024-04-02
  • MySQL 5.7 的事务控制语句的介绍
    START TRANSACTION 或 BEGIN 语句开始一个事务 COMMIT 语句提交事务,使得数据的更改永久生效 ROLLBACK 语句回滚事务,取消对数据的更改 SET autocom...
    99+
    2024-04-02
  • MySQL和JDBC事务控制的示例分析
    这篇文章将为大家详细讲解有关MySQL和JDBC事务控制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、MySQL的事务控制(Transaction Cont...
    99+
    2024-04-02
  • MySQL中事务控制对的示例分析
    这篇文章主要介绍MySQL中事务控制对的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是事务控制事务是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么全...
    99+
    2024-04-02
  • spring控制事务的三种方式小结
    目录方式一:编码方式(需要修改源代码,基本不会用)方式二:xml配置(不需要改动代码,直接配置xml)方式三:注解spring是如何控制事务的?首先准备环境,目录结构如下 数据库准...
    99+
    2024-04-02
  • mysql并发事务控制的过程介绍
    本篇内容主要讲解“mysql并发事务控制的过程介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql并发事务控制的过程介绍”吧!1、单版本控制锁。锁以独占的方式确保事务在只有一个版本的情况...
    99+
    2023-06-20
  • 前端canvas中物体边框和控制点的实现示例
    目录前言关于边框关于控制点本章小结前言 在上一章中我们已经搞定了下层画布,也就是能够对物体进行绘制了,现在就可以开始搞搞上层交互了。 不过在和画布产生交互之前,我们还要做一件事情,就...
    99+
    2022-11-13
    前端canvas物体边框控制点 canvas物体边框控制点
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作