技术开发 频道

Oracle回滚段的概念及管理

    回收回滚段的空间

    如果指定了回滚段的OPTIMAL参数,ORACLE将自动回收回滚段到OPTIMAL指定的位置。用户也可以手动回收回滚段的空间。

    语法:

ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer [K|M]];

    说明:
   如果不指明TO integer的数值,ORACLE将试图回收到OPTIMAL的位置。

    例:

ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 2M;

   使回滚段离线

   为了达到以下两个目的将要回滚段离线:

   1.阻止新的事务使用该回滚段;

   2.该回滚段必须删除。

    语法:

ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;

    例:

ALTER ROLLBACK SEGMENT rbs01 OFFLINE;

    说明:

    如果有事务正在使用该回滚段,运行该命令后,回滚段的状态将是PENDING OFFLINE。事务结束后,状态将改为OFFLINE,可以通过V$ROLLSTAT查询回滚段的状态。

    删除回滚段

    当回滚段不再需要或要重建以改变INITIAL,NEXT或MINEXTENTS参数时,可以将其删除。要删除回滚段,不许使该回滚段离线。

    语法:

DROP ROLLBACK SEGMENT rollback_segment;

     例:

DROP ROLLBACK SEGMENT rbs01;

   查询回滚段的信息

   所用数据字典:DBA_ROLLBACK_SEGS

   可以查询的信息:回滚段的标识(SEGMENT_ID)、名称(SEGMENT_NAME)、所在表空间(TABLESPACE_NAME)、类型(OWNER)、状态(STATUS)。

    例:

SQL>SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs;

    回滚段的统计信息

   数据字典:V$ROLLNAME,V$ROLLSTAT

    例:

SQL>SELECT n.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status FROM v$rollname n,v$rollstat s WHERE n.usn=s.usn;
0
相关文章