日期:2014-05-16 浏览次数:20449 次
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段中的区的分配是不连续的。