日期:2014-05-16  浏览次数:20440 次

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

    undo表空间只做一件事:保存旧值。在AUM下,段是自动生成,区是自动分配与回收,且是不连续的。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段中的区的分配是不连续的。