1. 一般的表空间中的段是手动建立的,undo表空间和普通的表空间相似,但是undo表空间中undo段,undo段是自动生成的;oracle自动使
undo的简要概序:
1. 一般的表空间中的段是手动建立的,undo表空间和普通的表空间相似,但是undo表空间中undo段,undo段是自动生成的;oracle自动使用、维护undo段。
2. 一般表空间中的段是我们自己手动使用的,而undo表中的段是oracle自动使用的。
show parameter undo_tablespace;//查询当前的undo表空间
name type value
-------------------------------------------------- ----------- ----------------
undo_tablespace string undotbs1
select * from v$rollname;//当前有多少段
//下面的段是系统提供的回滚段:
1. 对数据库对象进行操作的时候,也就是使用数据字典的时,system的undo段才会使用
2. 如果undo表空间坏了,可能会使用system段
0 system
//下面的是存在于 undotbs1中,这下面段是在数据库运行一段时间会自动调整的段
1 _syssmu1_3780397527$
2 _syssmu2_2232571081$
3 _syssmu3_2097677531$
4 _syssmu4_1152005954$
5 _syssmu5_1527469038$
6 _syssmu6_2443381498$
7 _syssmu7_3286610060$
8 _syssmu8_2012382730$
9 _syssmu9_1424341975$
10 _syssmu10_3550978943$
select segment_nae,blocks,extents from dba_segments where segment_name='system';//在system的表空间中段的大小
system 48 6
--undo表空间占用空间情况以及数据文件存放位置
select file_name,bytes/1024/1024 from dba_data_files
where tablespace_name like '%undotbs%';
/u01/app/oracle/oradata/jiagulun/undotbs01.dbf 90
select segment_name,tablespace_name,extent_id,file_id,block_id,blocks from dba_extents where segment_name='system';//段所占的区
system system 0 1 128 8
system system 1 1 136 8
system system 2 1 528 8
system system 3 1 536 8
system system 4 1 544 8
system system 5 1 552 8
select segment_name,tablespace_name,extent_id,file_id,block_id,blocks from dba_extents where segment_name='_syssmu7_3286610060$';
_syssmu7_3286610060$ undotbs1 0 3 224 8
_syssmu7_3286610060$ undotbs1 1 3 232 8
_syssmu7_3286610060$ undotbs1 2 3 312 8
_syssmu7_3286610060$ undotbs1 3 3 1024 128
_syssmu7_3286610060$ undotbs1 4 3 11392 128
通过上面可以看到对于系统的undo段中的区是连续的,,而且区中的块也是连续的
但是对于非系统的undo段中的区不是连续的,但是区中的块是连续的
undo表空间的管理方式:在9i以前表空间自动建立,段是自动建立;但是区是手动分区的,这样就会存在一些问题:
一些比较大的dml语言跑跑就因为undo段够就会出现问题,空间不足。
在其后就自动分配了,在某些请款下也会自动回收的。
show parameter undo;
name type value
-------------------------------------------------- ----------- ----------------------------------------------------------------------------------------------------
undo_tablespace string undotbs1
name type value
-------------------------------------------------- ----------- ----------------------------------------------------------------------------------------------------
undo_management string auto
undo_retention integer 900
undo_tablespace string undotbs1