undo表空间概述-1

Streamoutput 2019-12-31

Undo表空间及管理方式

undo的三个作用

  读一致性,构造CR块

  回滚

  实例恢复

show parameter undo_tableplace;

数据库建立后,会自动生成undo表空间,以及undo段也是自动生成

与其他表空间的段不同的是:undo表空间的undo段是自动生成且自动维护的,除此之外,oracle会自动使用undo表空间中的undo段。其他表空间的段都是手工创建的。

从某种意义上讲,只需要确保undo表空间的大小就可以了。

Oracle如何使用undo段?

查看物理undo表空间

select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like ‘%UNDOTBS%‘;

undo表空间概述-1

   undo表空间的段,其中system在系统表空间中

  select * from v$rollname; 

  undo表空间概述-1

在oracle的undo表空间中有很多回滚段,但是在系统表空间中也是有一个回滚段。在oracle正常运行期间使用的是undo表空间中的段,随着oracle业务量增长,undo表空间的段也会变化。

在系统表空间中,system回滚段,在什么时候会使用呢?

  1.oralce对数据字典进行操作的时候,比如,建立表(列的名字,列的类型,表名等等),这时候需要写到数据字典中,那么也就需要写到系统表空间中。也就是说对数据库的对象,进行增加和删除的时候就要操作数据库的数据字典,也就需要用到系统表空间以及undo段。

  2.当undo表空间坏了,oracle会使用系统表空间的system段

  undo表表空间自动分区

undo表空间概述-1

 undo自动管理:   

   undo表空间自动生成

   undo表空间中的段自动生成

   oracle自动使用undo表空间

   undo段是自动分配区

undo段的管理方式

  在9i以前,undo表空间是手工管理,也就是说,undo表空间和undo段都是自动建立的,但是undo段中的区的分配是要手工管理的。

  所以在9i以前,如果遇到数据量较大的时候,undo表空间的undo段不够用的情况,需要手工进行分配区,容易导致操作失败。

  从9i开始,undo表空间进行自动管理,以为着undo表空间的undo段所需要的区是自动分配和收回的,只要给undo表空间足够的空间即可。

  

      

相关推荐