上下求索

Oracle UNDO数据概念和管理

上一篇 / 下一篇  2011-12-16 13:32:48

一些概念:

UNDO数据也称为回滚(ROLLBACK)数据,它用于确保数据的一致性.UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,oracle会将这些操作的旧数据写入到UNDO段,在oracle9i之前,管理UNDO数据时使用(Rollback Segment)完成的.从oracle9i开始,管理UNDO数据不仅可以使用回滚段,还可以使用UNDO表空间.因为规划和管理回滚段比较复杂,所有oracle database 10g已经完全丢弃用回滚段.并且使用UNDO表空间来管理UNDO数据.

UNDOTBS1是一个回滚表空间,随着数据库的使用,默认会自动扩展。当它增大到一定程度,占用了过多的磁盘空间时,就需要定时进行清理了。

1. 登陆到数据库

oracle@suse:~> sqlplus '/as sysdba'


2. 创建一个新的回滚段表空间

SQL> create undo tablespace undotbs2 datafile '%oracle_home%/oradata/DBSID/undotbs02.dbf' size 500M;

Tablespace created.

3. 将回滚段指向新的表空间

SQL> alter system set undo_tablespace=undotbs2 scope=spfile;

System altered.


4. 重新启动数据库

SQL> startup force
ORACLE instance started.


5. 因为oracle9i默认是自动管理回滚段,为了防止其无限制的增长,可以将其设置为人工管理:
SQL> alter system set undo_management =MANUAL scope=spfile;

System altered.


(本人建议:还是让数据库自动管理回滚段比较好,可以定期清理该表空间)

7. 删除原来的回滚段:
SQL> drop tablespace undotbs1 including contents and datafiles;

Tablespace dropped.


TAG: Oracle undo oracle

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 126674
  • 日志数: 65
  • 建立时间: 2009-06-24
  • 更新时间: 2013-11-01

RSS订阅

Open Toolbar