undo_retention简单定义,就是最多数据的最少保留时间。AUM模式下,undo_retention参数用于事务commit后undo数据保留的时间。单位为秒。这是个no guarantee的限制。也就是,若空间足够,他只是个‘花瓶’;当可用空间不足而又有事务需要回滚空间,则这些数据依然会被覆盖。这个行为可能会导致ORA-01555错误,这些数据被记忆的时间可用v$undostat里面的字段TUNED_UNDORETENTION来查询。

UNDO主要用于以下方面:
1.在执行rollback语句的时候rollback事物
2.恢复数据库
3.提供读一致性
4.为oracle flashback query提供支持
5.使用oracle flashback特性恢复数据库逻辑失败

一般来讲事物的undo信息存储在回滚段中,事物的undo信息一直存在,直到一个commit或者rollback语句执行。自动回滚段管理允许DBA指定oracle数据库保留多久的commit之后的undo信息。防止在长时间的查询产生ora-01555:snapshot too old.通过设置UNDO_RETENTION参数来达到这个目的,默认是900s(15min).可以设置这个参数保证数据库保留undo日志的时间.设置UNDO_MANAGEMENT = AUTO参数就可以设置自动管理回滚段特性。

undo段中的区有以下三种状态:
Unexpired Extents – Undo data whose age is less than the undo retention period.
Expired Extents – Undo data whose age is greater than the undo retention period.
Active Extents – Undo data that is part of the active transaction.
以下介绍oracle是怎么利用undo回滚段的:
第一步.当需要回滚段的时候,一个undo信息需要被写入到回滚段中。如果当前使用区已经不足,并且下一个区是expired状态,优先使用expired状态的区,而不是从空闲区间池中产生一个空闲的区间。
第二步.如果第一步由于没有可用的区间而失败,并且undo数据文件不是自动扩展的。则oracle试图去利用另一个回滚段的expired状态区间。
第三步.如果第二步由于其他回滚段没有expired状态的区间,则oracle试图去利用当前回滚段的unexpired区间
第四步.如果第三步仍然失败,则oracle视图利用另一个回滚段的unexpired状态区间
第五步.如果以上全部失败,则an Out-Of-Space error 就会产生。
以下实验:
SQL> select tablespace_name, status, sum(blocks) * 8192/1024/1024/1024 GB from dba_undo_extents group by tablespace_name, status;

TABLESPACE_NAME STATUS GB
------------------------------ --------- ----------
UNDOTBS1 UNEXPIRED .010742188
UNDOTBS1 EXPIRED .015014648

SQL> update t1 set name='eeeee' where id=5;

SQL> select tablespace_name, status, sum(blocks) * 8192/1024/1024/1024 GB from dba_undo_extents group by tablespace_name, status;

TABLESPACE_NAME STATUS GB
------------------------------ --------- ----------
UNDOTBS1 UNEXPIRED .009765625
UNDOTBS1 EXPIRED .015014648
UNDOTBS1 ACTIVE .000976563
Undo Blocks per Second

参考资料:

http://blog.itpub.net/17203031/viewspace-774498/

http://blog.itpub.net/17203031/viewspace-774565/

Undo Segment/Undo Retention的更多相关文章

  1. MySQL 详细解读undo log :insert undo,update undo

    转自aobao.org/monthly/2015/04/01/ 本文是对整个Undo生命周期过程的阐述,代码分析基于当前最新的MySQL5.7版本.本文也可以作为了解整个Undo模块的代码导读.由于涉 ...

  2. MySQL · 引擎特性 · InnoDB 事务系统

    前言 关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等.本文主要介绍InnoDB事务子系统,主要包括,事务的启动,事务的提交,事 ...

  3. (转)Mysql技术内幕InnoDB存储引擎-事务&备份&性能调优

    事务 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC ...

  4. Master Note: Troubleshooting ORA-1548 error (Doc ID 1577988.1)

    APPLIES TO: Oracle Database Cloud Schema Service - Version N/A and laterOracle Database Exadata Clou ...

  5. undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'

    故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃: 问题分析:本问题在ORACLE系统管理中属于比较正常的一现象,产生问题的原因主要以下两点: 1. 有较大的事务量让Oracl ...

  6. Automatic Tuning of Undo Retention 常见问题 (Doc ID 1579779.1)

    Automatic Tuning of Undo Retention Common Issues (Doc ID 1579779.1) APPLIES TO: Oracle Database - En ...

  7. UNDO

    UNDO及事物 undo表空间是Oracle独有,在oracle开启一个事物之后,oracle对数据进行修改,同时,会把修改前的数据保存到UNDO表空间的UNDO段里.undo表空间中会自动分配und ...

  8. Oracle undo 镜像数据探究

                                                                 Oracle undo 镜像数据探究  今天是2013-08-18,隔别一周的 ...

  9. [Oracle]undo表空间使用量为100%

    在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转 通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8 ...

随机推荐

  1. css选择器找亲戚

    1.first-child first-child表示选择列表中的第一个标签.代码如下: li:first-child{background:#090} 上面的意思是,li 列表中的 第一个li模块的 ...

  2. ORCALE字符集AL32UTF8和ZHS16GBK的互相转换

    AL32UTF8转成ZHS16GBK cmd中输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车 密码后面输入“SYS”,回车.这里输入密码是隐式的,所以看不见,只 ...

  3. 3.web开发入门知识

    /*web入门*/ /*互联网上常用的协议以及它的端口*/ http 80 http://localhost/    相当于    http://localhost:80/         http协 ...

  4. LeetCode 滑动窗口题型整理

    一.滑动窗口题型模板 /* * 滑动窗口类型: 模板 */ public List<Integer> slideWindowMode(String s, String t) { // 1 ...

  5. Spring Cloud(七)服务网关 Zuul Filter 使用

    上一篇文章中,讲了Zuul 转发,动态路由,负载均衡,等等一些Zuul 的特性,这个一篇文章,讲Zuul Filter 使用,关于网关的作用,这里就不再次赘述了,重点是zuul的Filter ,我们可 ...

  6. 实时跟踪之TRACA

    背景: 目前,在实时跟踪领域存在着越来越多的先进方法,同时也极大地促进了该领域的发展.主要有两种不同的基于深度学习的跟踪方法:1.由在线跟踪器组成,这些跟踪器依赖网络连续的微调来学习目标的变化外观,精 ...

  7. 前端基础(二):CSS

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  8. 《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

    在上篇文章中,我们介绍了渲染流水线中的 DOM 生成.样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段. 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染 ...

  9. (十四)Linux kernel mmc 框架说明,包括mmc_test使用方法

    1.Linux 总线模型         Linux下的任何驱动在内核中最终都抽象为bus, driver以及device三者间的相互作用. 总线是处理器和一个或多个设备之间的通道,在设备模型中,所有 ...

  10. RHEL6进入救援模式

      1.救援模式 救援模式作用: 更改root密码: 恢复硬盘.文件系统操作 系统无法启动时,通过救援模式启动 2.放入系统光盘,重启从光盘启动: 4.选择语言,默认English就行   5.保持默 ...