欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

oracle 10g undo 管理,Oracle 10g undo表空间管理

发布时间:2023/11/27 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 oracle 10g undo 管理,Oracle 10g undo表空间管理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、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 来计算。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

总结

以上是生活随笔为你收集整理的oracle 10g undo 管理,Oracle 10g undo表空间管理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。