`
java-mans
  • 浏览: 11440293 次
文章分类
社区版块
存档分类
最新评论

undo系列学习之undo段及区的状态和使用概述

 
阅读更多

undo表空间只做一件事:保存旧值。在AUM下,段是自动生成,区是自动分配与回收,且是不连续的。每个段至少有2个区。oracle自动使用undo段,在某种意义上,我们只要关注undo表空间的大小就可以了。

查询当前哪个undo表空间被激活:

sys@ORCL> show parameter undo_tablespace

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace                      string      UNDOTBS1


查询undo表空间里面有多少个数据文件:

sys@ORCL> col file_name for a72
sys@ORCL> select file_name,bytes/1024/1024 m from dba_data_files where tablespace_name like '%UNDOTBS%';

FILE_NAME                                                                         M
------------------------------------------------------------------------ ----------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf              100
/u01/app/oracle/oradata/ORCL/datafile/thinkundo.dbf                              30


查询undo表空间里面在线有多少个段:

sys@ORCL> select * from v$rollname;

       USN NAME
---------- ------------------------------
         0 SYSTEM
         1 _SYSSMU1$
         2 _SYSSMU2$
         3 _SYSSMU3$
         4 _SYSSMU4$
         5 _SYSSMU5$
         6 _SYSSMU6$
         7 _SYSSMU7$
         8 _SYSSMU8$
         9 _SYSSMU9$
        10 _SYSSMU10$

11 rows selected.


查询段有多少个区和块:

sys@ORCL> select segment_name,extents,blocks from dba_segments where segment_name='_SYSSMU3$';

SEGMENT_NAME       EXTENTS     BLOCKS
--------------- ---------- ----------
_SYSSMU3$               17        256


查询区有多少个块:

sys@ORCL> select file_id,tablespace_name,segment_name,extent_id,block_id,blocks from dba_extents where
  2  segment_name='_SYSSMU3$';

   FILE_ID TABLESPACE_NAME                SEGMENT_NAME     EXTENT_ID   BLOCK_ID     BLOCKS
---------- ------------------------------ --------------- ---------- ---------- ----------
         2 UNDOTBS1                       _SYSSMU3$                0         41          8
         2 UNDOTBS1                       _SYSSMU3$                1         49          8
         2 UNDOTBS1                       _SYSSMU3$                2         17          8
         2 UNDOTBS1                       _SYSSMU3$                3         33          8
         2 UNDOTBS1                       _SYSSMU3$                4        161          8
         2 UNDOTBS1                       _SYSSMU3$                5        169          8
         2 UNDOTBS1                       _SYSSMU3$                6        177          8
         2 UNDOTBS1                       _SYSSMU3$                7        185          8
         2 UNDOTBS1                       _SYSSMU3$                8        201          8
         2 UNDOTBS1                       _SYSSMU3$                9        209          8
         2 UNDOTBS1                       _SYSSMU3$               10        217          8
         2 UNDOTBS1                       _SYSSMU3$               11        225          8
         2 UNDOTBS1                       _SYSSMU3$               12        233          8
         2 UNDOTBS1                       _SYSSMU3$               13        241          8
         2 UNDOTBS1                       _SYSSMU3$               14        249          8
         2 UNDOTBS1                       _SYSSMU3$               15        257          8
         7 UNDOTBS1                       _SYSSMU3$               16        521        128

17 rows selected.


从这里我们也可以看出,undo段中的区的分配是不连续的。

undo段中区的状态:
1)free:没有分配给任何一个段
2)active:区中有事务没有提交
3)inactive:区中的事务提交了
4)expired:事务提交而且达到了undo_retention
注:我们可以通过设定undo_retention来保住inactive的区,若没有free,则自动扩展;若扩展不了,则优先使用expired;若还不够,则就会使用inactive,但如果此时retention是guarantee保证的,则无法使用inactive,会报ORA-30036.

sys@ORCL> select extent_id,bytes,status from dba_undo_extents where segment_name='_SYSSMU3$';

 EXTENT_ID      BYTES STATUS
---------- ---------- ---------
         0      65536 EXPIRED
         1      65536 EXPIRED
         2      65536 EXPIRED
         3      65536 EXPIRED
         4      65536 EXPIRED
         5      65536 EXPIRED
         6      65536 EXPIRED
         7      65536 EXPIRED
         8      65536 EXPIRED
         9      65536 EXPIRED
        10      65536 EXPIRED
        11      65536 EXPIRED
        12      65536 EXPIRED
        13      65536 EXPIRED
        14      65536 EXPIRED
        15      65536 EXPIRED
        16    1048576 EXPIRED

17 rows selected.

undo段上默认只有一个事务,当有多个事务时,会优先选择空闲的undo段,只有在没有了空闲undo段时,oracle才会选择在一个undo段上建立多个事务。

分享到:
评论

相关推荐

    redux-undo-actions:Redux中间件通过分派还原操作来执行撤消操作

    还原操作概述redux-undo-actions是用于撤消/重做操作的Redux中间件。 它不会将状态更改为 。 而不是更改应用程序的状态,而是调度与历史记录相反的操作。安装要开始使用redux-undo-actions,您需要运行以下命令: ...

    深入解析OracleDBA入门进阶与诊断案例 3/4

    本书给出了大量取自实际工作现场的实例,在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法...

    深入解析OracleDBA入门进阶与诊断案例 2/4

    本书给出了大量取自实际工作现场的实例,在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法...

    深入解析OracleDBA入门进阶与诊断案例 4/4

    本书给出了大量取自实际工作现场的实例,在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动...

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    敏捷软件开发.pdf

    29.4 应该在哪些地方使用状态机 29.5 作为GUI中的高层应用策略 29.6 结论 29.7 程序 参考文献 第30章 ETS框架 30.1 介绍 30.2 框架 30.3 框架设计 30.4 TEMPLATE METHOD模式的一个例子 30.5 TASKMASTER...

    RouterOS2.9.6.with.crack及配置动画

    MikroTik RouterOS是一种路由操作系统,并通过该软件将标准的PC电脑变成专业路由器,在软件RouterOS 软路由图的开发和应用上不断的更新和发展,软件经历了多次更新和改进,使其功能在不断增强和完善。特别在无线、...

    push-pop-challenge:SIDESTREAM编码挑战

    扩展了用于撤消功能的外部插件undo-redo-vuex,并在npm ModuleName中发布了该模块:“ @ divyankd / undo-redo-vuex” 使UI呈现出来,并使用vuex为应用程序创建状态管理。 前端版本1和版本2 用户界面允许操作员执行...

    Oracle 闪回技术详细介绍及总结

    Oracle闪回技术详解,这里整理了4种闪回技术,对Oracle 闪回技术做一个整理总结。  概述: ... 撤销段(UNDO SEGMENT)  在讲闪回技术前,需要先了解Oracle中一个逻辑结构–撤销段。因为大部分闪回技术

    JAVA_API1.6文档(中文)

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    vss如何使用(图解)

    在执行签入(check in)、签出(check out)、撤消签出(undo check out)、取出最新版本(get latest version)和文件合并(merge branches)等命令时都必须使用工作文件夹。工作文件夹可以随时设定或修改,VSS系统中可以通过...

    visual source safe 教程

    在执行签入(check in)、签出(check out)、撤消签出(undo check out)、取出最新版本(get latest version)和文件合并(merge branches)等命令时都必须使用工作文件夹。工作文件夹可以随时设定或修改,VSS系统中可以通过...

    java api最新7.0

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    iPhone开发秘籍.part2.rar

    iPhone 为用户提供了多种警告方式,从弹出对话框和进度栏到音频提示和状态栏更新。第4章展示如 何将这些指示功能构建到应用程序中,并扩展用户警告词汇库。 第5章:基本表格 表格提供了在小型受限设备上获得出色运行...

    iPhone开发秘籍.part4.rar

    iPhone 为用户提供了多种警告方式,从弹出对话框和进度栏到音频提示和状态栏更新。第4章展示如 何将这些指示功能构建到应用程序中,并扩展用户警告词汇库。 第5章:基本表格 表格提供了在小型受限设备上获得出色运行...

    iPhone开发秘籍.part1.rar

    iPhone 为用户提供了多种警告方式,从弹出对话框和进度栏到音频提示和状态栏更新。第4章展示如 何将这些指示功能构建到应用程序中,并扩展用户警告词汇库。 第5章:基本表格 表格提供了在小型受限设备上获得出色运行...

    [Java参考文档].JDK_API 1.6

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

Global site tag (gtag.js) - Google Analytics