undo的作用是:解决oracle多用户读写一致性,以及操作可撤销或者回滚。

1.undo表空间是从10g开始进行自动管理的,几个参数如下:

undo_management:回滚段手动管理还是自动管理

undo_tablespace:为undo单独定义的表空间;在自动管理模式下,使用哪个表空间

undo_retention:在自动管理模式下,回滚段在非活动状态下,回滚段中的数据被覆盖前,系统的保留时间(秒)。

2.回滚段存储的内容

insert操作:只记录插入记录的rowid,回滚时,只需要根据该rowid删除记录即可

update操作:记录要更新字段的镜像,回滚时,通过该镜像,覆盖之前的值

delete操作:完整地记录一条数据,回滚时,通过一个反向操作恢复数据。

通过上面比较,delete的花销最大。所以,一个批量删除失败,回滚会花销比较长的时间。同时,回滚的操作

还要记录redo日志。

3.oracle读写一致性

用户A、B;一个在update,一个在select;

如果(1):Ty< T<Tz<Tx , 即在查询中,数据有更新;但在update 的commit前,查询结束;虽然有update操作,但select依然

可以通过回滚段的数据镜像查询出结果,这样数据就保持了读取一致性。

如果(2):Ty< T<Tx<Tz ,在查询中,数据有更新;但在update 的commit前,查询还未结束;这就导致select的查询回滚段的数据

镜像有可能被覆盖,进而查询失败;oracle提示ora-01555错误。

oracle为解决ora-01555问题:

从10g 开始,oracle 对undo_retention 参数进行了调整。默认情况下,这个参数是启用的。oracle自动调整回滚段数据保留时间;

当然,如果undo表空间不足,系统自动满足长时间的查询,而不需要手动调整。

同时,oracle还对undo表空间增加了guaratee控制,即用户可以指定undo表空间必须满足undo_retention 限制。

>alter tablespace undotbs1    retention guaratee;

深入浅出Oracle学习笔记:Undo的更多相关文章

  1. 深入浅出Oracle学习笔记:Buffer Cache 和Shared pool

    Buffer cache 和 share pool 是sga中最重要最复杂的部分. 一.Buffer Cache 通常数据的读取.修改都是通过buffer cache 来完成的.buffer cach ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  4. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  5. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  6. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  7. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  8. oracle学习笔记(一)用户管理

    --oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...

  9. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

随机推荐

  1. Xcode6 pch文件

    XCode6里, 默认是没有pch文件的,如果我们想使用pch文件,需要手动添加,添加步骤如下 1.在XCode6中是么有pch文件的,如下图     2.创建pch文件     3.配置pch文件 ...

  2. Scrapy学习-10-Request&Response对象

    请求URL流程 Scarpy使用请求和响应对象来抓取网站  通常情况下,请求对象会在spider中生成,并在系统中传递,直到到达downloader,它执行请求并返回一个响应对象,该对象返回发送请求的 ...

  3. 王垠 :写给支持和反对《完全用Linux工作》的人们 ( 2004/8/26)

    在一阵阵唾骂和欢呼声中,<完全用linux工作>被转载到了天涯海角.很多人支持我,也有很多人唾骂我.我不知道它是怎样流传到那么多地方,其实 我不知道它都被转到哪里去了…… 我知道现在这篇文 ...

  4. Codeforces 12 D Ball

    Discription N ladies attend the ball in the King's palace. Every lady can be described with three va ...

  5. ueditor整合之后前段不显示高亮

    自己整合ueditor插件后,发现在前段显示的时候并没有高亮处理 在网上看了一些方法后,自己尝试了下. 1.在页面上引入相关的js和css文件 主要是以下两个文件 <script src=&qu ...

  6. Java面向对象练习题

    1.猜数字游戏: 一个类A有两个成员变量v.num,v有一个初值100. 定义一个方法guess,对A类的成员变量v,用num进行猜. 如果大了则提示大了,小了则提示小了.等于则提示猜测成功. 在ma ...

  7. CodeWar----求正整数二进制表示中1的个数

    Codewars Write a function that takes an integer as input, and returns the number of bits that are eq ...

  8. scanf,fscanf,sscanf的区别----整理

    转自原文 scanf,fscanf,sscanf的区别----整理 scanf 从控制台输入 fscanf 从文件输入 sscanf 从指定字符串输入 1.例:使用scanf函数输入数据. #incl ...

  9. 【paddle学习】图像分类

    https://zhuanlan.zhihu.com/p/28871960 深度学习模型中的卷积神经网络(Convolution Neural Network, CNN)近年来在图像领域取得了惊人的成 ...

  10. ftp服务器调用出错

    因工作需要,需从FTP服务器上下载文件,本地测试OK,服务器上在FTP服务器连接之后卡住,没有异常和提示信息,在打印FTP命令之后,显示:150 Opening data channel for fi ...