一、回滚段的介绍

  在Oracle数据库中,当某个事务对数据库进行修改时,Oracle首先将数据库的原始值保存到一个回退段中,一个事务只能将它的信息保存到一个回滚段中,而多个并行事务可以使用同一个回滚段。

  •回滚段的作用

   --事务回滚:当事务事务执行失败或用户执行回滚操作时(rollback),Oracle会利用保存在回滚段中的信息将数据恢复到原来的值;

   --数据库恢复:当数据库实例运行运行失败,在数据库重启恢复时,Oracle先利用重做日志文件对数据库进行恢复(包括已提交和未提交的事务),再利用回滚段中的信息回滚未提交的事务;

   --一致性读,构建CR块:当一个用户对数据进行修改时,会预先将其原始值报错到回滚段中,这时有其他用户访问数据时,就会看到原始数据;

   --闪回查询:通过保留在回滚段中的信息,用户可以查询某个数据在过去某个时刻的数据;

SELECT * FROM table as of timestamp to_timestamp('2018-10-11 00:34:09','yyyy-mm-dd hh24:mi:ss'); 

二、undo表空间介绍

  --查询数据库当前使用的是哪个表空间

SQL> show parameter undoNAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
undo_management              string     AUTO
undo_retention                 integer     900
undo_tablespace              string     UNDOTBS1

   --回滚段信息

SQL> select segment_name,tablespace_name ,status from dba_rollback_segs;SEGMENT_NAME               TABLESPACE_NAME              STATUS
------------------------------ ------------------------------ ----------------
SYSTEM                   SYSTEM                  ONLINE
_SYSSMU1_3724004606$           UNDOTBS1               ONLINE
_SYSSMU2_2996391332$           UNDOTBS1               ONLINE
_SYSSMU3_1723003836$           UNDOTBS1               ONLINE
_SYSSMU4_1254879796$           UNDOTBS1               ONLINE
_SYSSMU5_898567397$           UNDOTBS1               ONLINE
_SYSSMU6_1263032392$           UNDOTBS1               ONLINE
_SYSSMU7_2070203016$           UNDOTBS1               ONLINE
_SYSSMU8_517538920$           UNDOTBS1               ONLINE
_SYSSMU9_1650507775$           UNDOTBS1               ONLINE
_SYSSMU10_1197734989$           UNDOTBS1               ONLINESEGMENT_NAME               TABLESPACE_NAME              STATUS
------------------------------ ------------------------------ ----------------
_SYSSMU11_2405047275$           UNDOTBS2               OFFLINE
_SYSSMU12_4193091853$           UNDOTBS2               OFFLINE
_SYSSMU13_426403437$           UNDOTBS2               OFFLINE
_SYSSMU14_3476995392$           UNDOTBS2               OFFLINE
_SYSSMU15_2977663266$           UNDOTBS2               OFFLINE
_SYSSMU16_70103909$           UNDOTBS2               OFFLINE
_SYSSMU17_83561221$           UNDOTBS2               OFFLINE
_SYSSMU18_1562838573$           UNDOTBS2               OFFLINE
_SYSSMU19_432397083$           UNDOTBS2               OFFLINE
_SYSSMU20_998160251$           UNDOTBS2               OFFLINE21 rows selected.
--共21个回滚段

   --参数说明

    •undo_retention :设置回退信息在回滚段保留的时间,单位秒,作用之一闪回查询(只提供DML语句的闪回);

  --如何监控undo segment 使用情况:使用动态性能视图,v$transaction,记录事务内每个用户使用回滚块的数量(sys用户,占用7号回滚段,1个数据块)

SQL> select a.USERNAME,b.XIDUSN,b.USED_UBLK from v$session a  ,v$transaction b  where  a.SADDR = b.SES_ADDR;USERNAME               XIDUSN  USED_UBLK
------------------------------ ---------- ----------
SYS                    7       1

   •undo表空间特有属性retention(回退保持力,非强制),其他表空间都没有,跟undo_retention时间有关,回滚段里的保存回滚信息不强制保留900秒;

SQL> select tablespace_name,retention from dba_tablespaces;TABLESPACE_NAME            RETENTION
------------------------------ -----------
SYSTEM                   NOT APPLY
SYSAUX                   NOT APPLY
UNDOTBS1               NOGUARANTEE
TEMP                   NOT APPLY
USERS                   NOT APPLY
UNDOTBS2               NOGUARANTEE
EXAMPLE                NOT APPLY
TBS01                   NOT APPLY
TBS02                   NOT APPLY
CATALOGDAT               NOT APPLY
TBS_TRAN               NOT APPLY11 rows selected.
回退保持力非强制

  

转载于:https://www.cnblogs.com/Memory-Python/p/9872612.html

Oracle undo表空间相关推荐

  1. Oracle undo 表空间管理

    Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...

  2. Oracle undo表空间爆满的解决

    1. 启动SQLPLUS,并用sys登陆到数据库. #su - oracle $>sqlplus / as sysdba 2. 查找数据库的UNDO表空间名,确定当前例程正在使用的UNDO表空间 ...

  3. Oracle UNDO表空间损坏时的处理办法

    前两天一客户的Oracle数据库出现故障,通过分析日志发现是UNDOTBS1表空间损坏,在没有使用RMAN备份来做恢复的情况下,通过重建UNDO表空间解决: 拿到这个问题后,先尝试直接 recover ...

  4. oracle undo表空间缩小,缩小undo表空间全记录

    今天同事让我把undo表空间缩小为原来的40GB,之前由于开发商的需求,将undo表空间扩大到了200GB之大,现在需要缩小为40GB.虽然整件事有点不和逻辑,但事已至此也用不管他们怎么想的,毕竟人家 ...

  5. Oracle undo表空间管理

    当在做DML操作的时候,在修改buffer cache里面的数据块的时候,会对当前块的旧镜像信息做一个保存,保存的数据块就是undo块.undo块上面保存着数据修改前的信息. 生成undo块的几个作用 ...

  6. oracle清理undo空间,删除Oracle Undo表空间

    近期处理了一次删除.重建Undo表空间的事情,有些细节还是值得记下来备忘.事情的起因是工程师需要将分布在不同ASM磁盘组里的Oracle数据库文件,迁移到新建的ASM磁盘组,操作过程中,错误的删除了U ...

  7. oracle不同表空间怎么切换,oracle undo表空间的切换

    环境 centos7,oracle11 1.新建 用oracle用户登陆 sqlplus / as sysdba 进入sql命令行 create undo tablespace undotbs2 da ...

  8. 释放oracle undo表空间,undo表空间释放

    一.概述: 使用IMPDP工具导入大表(166G)数据时,报undo表空间不能扩展,导入工作失败.手工停止了impdp后,undo表空间存在无法自动释放的故障.本文主要描述如何通过重建undo表空间来 ...

  9. oracle resetlogs 误删,oracle undo表空间误删恢复

    有rman备份常规恢复 [oracle@localhost pahc]$ mv undotbs01.dbf undotbs01.dbf.bak SQL> shutdown immediate; ...

最新文章

  1. 2008R2Win7管理二十八Mail之基本使用
  2. element table固定表头,表的高度自适应解决方法
  3. fortify扫描java_亲测有效的几种fortify扫描安全漏洞的解决方案
  4. Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
  5. 而立之年,不拼体力的我们应该关注什么?
  6. Groovy 使用完全解析
  7. 工作日志20150202
  8. Git commit/pull/push的操作步骤
  9. python读音播报-用Python写一个语音播放软件
  10. Keras学习---MLP和CNN模型建立篇
  11. cent os7 安装dubbo-admin 管理控制台
  12. 使用VS2019创建控制器时出现运行所选代码生成器时出错:“值-1超出了可接受的[0,2147483647]范围。参数名称:value”错误
  13. ARM:让Mali带来更极致的移动VR体验
  14. 用户画像及其应用案例分享
  15. Laravel Excel导出xls乱码
  16. 中科大入学考试(数学)
  17. 学习Android开发
  18. 教你怎么用Python和Qt5编写中国象棋AI版——规则模块
  19. [转][类似我] 某作者结合自己性格对盖洛普的推广
  20. CC2640R2F BLE5.0 TI-RTOS概述

热门文章

  1. FlexboxLayout使用(Google官方实现流式布局控件)
  2. Android多线程:深入分析 Handler机制源码(二)
  3. Mysql数据库事务详解
  4. html5+开发移动app
  5. 福建省计算机一级应用技术基础知识,求福建省计算机一级考试的基础题
  6. 人工智能实践:TensorFlow笔记学习(四)—— 神经网络优化
  7. echart旭日图_150Echarts - 旭日图(Sunburst Label Rotate)
  8. FFmpeg从入门到出家(HEVC在RTMP中的扩展)
  9. Jmeter Summariser report及其可视化
  10. [leetcode] 367. Valid Perfect Square