Home  >  Article  >  Database  >  Oracle 10g undo表空间管理

Oracle 10g undo表空间管理

WBOY
WBOYOriginal
2016-06-07 17:02:41986browse

一、oracle 9i起,有两种undo管理方式:AUM Automatic Undo ManagementMUN Manual Undo Management建议使用 AUM ,下面只讨论AUM

一、Oracle 9i起,有两种undo管理方式:
AUM Automatic Undo Management
MUN Manual Undo Management
建议使用 AUM ,下面只讨论AUM
undo segment 也叫  rollback segment

二、undo 的三大作用:
1、提供一致性读 Consistent Read
2、回滚事务 Rollback Transaction
3、实例恢复 Instance Recovery

三、配置 AUM
1、设置初始化参数 undo_management    
auto       AUM 管理undo
manual     MUN 管理undo
SQL>show parameter undo_management
2、undo segment 即会扩展,,也会收缩。收缩有SMON完成,没隔12小时会收缩一次。
3、参数 undo_retention 单位为秒,表示当事务提交或回滚,该事务所使用的undo块里的数据需要保留多长的时间。
4、当使用 AUM,并设置undo_retention 之后,undo块存在四种状态。
Actice   undo的事务还没有提交。
Inactive undo上没有活动的事务,可以被其他事务覆盖。
Expried  undo持续的时间超过undo_retention所指定的时间。
Freed    undo内容是空,没有被使用过。
4、undo_retention默认值是 900 秒。
SQL>alter tablespace undonew add datafile 'u01/app/oracle/oradata/ora10g/undonew02.dbf' size 10M autoextend on;

四、切换undo_tablespace
1、数据库可以有多个undo表空间,但某时刻只能使用一个。
2、将undo_tablespace参数设置为另外一个undo表空间的名字,叫做undo表空间的切换。
3、切换时,有事务未完成,切换后,旧的undo表空间为 pending offline 状态,不能被删除,当事务提交后,变为offline状态,才可以删除。
4、如果undo表空间不能扩展,在不够情况下,会将保留时间小于 undo_retention 的undo数据覆盖。但可以通过设置参数保留,出现该情况直接报错
SQL>alter tablespace undonew add datafile 'u01/app/oracle/oradata/ora10g/undonew02.dbf' size 10M autoextend on maxsize 100M retention guarantee;
SQL>alter tablespace undonew retention guarantee;
SQL>alter tablespace undonew retention noguarantee;

五、计算undo表空间大小
1、利用视图 v$undostat
oracle 每隔 10分钟更新视图,将10分钟产生的undo个数记录在该视图,保留7天的数据,总共 1008行记录。
2、公式:
undospace = undo retention * undo per second * overhead(24 undo blocks)

其中: undo retention 参数 undo_retention
      undo per second 通过查询 v$undostat 来计算。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Oracle 内存管理PGANext article:Oracle 内存管理SGA