读书人

undo系列学习之undo段及区的状态跟使用

发布时间: 2012-09-06 10:37:01 作者: rapoo

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

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

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

sys@ORCL> show parameter undo_tablespaceNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------undo_tablespace                      string      UNDOTBS1


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

sys@ORCL> col file_name for a72sys@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        12817 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 EXPIRED17 rows selected.


读书人网 >其他数据库

热点推荐