ITPub博客

首页 > 数据库 > Oracle > oracle undo 表空间

oracle undo 表空间

原创 Oracle 作者:yaoyiwang 时间:2010-02-26 14:09:31 0 删除 编辑

一、undo表空间的作用:

Oracle 使用undo来保存数据库事务操作前的旧数据;当一个事务开始时,oracle会把数据保存在undo表空间中;如果事务失败或者事务回滚,oracle将用回滚段中的历史数据,还原表数据;

二、监控undo表空间:

在日常数据库运行中,可能出现以下错误:

1、由于undo表空间所在的磁盘空间不够,造成数据库异常:

如:undo表空间所在磁盘大小为10G,创建表空间的语句为:CREATE UNDO TABLESPACE undotbs_02
DATAFILE '/u01/oracle/rbdb1/undo0201.dbf' SIZE 1024M REUSE AUTOEXTEND ON;表空间是自动增长,当用户删除超过10G的数据时,数据库将报:ORA-01650: unable to extend rollback segment 不能扩展回滚段。所以删除大表时不能简单的用delete from tablename语句;要根据实际情况做相应改变。

2、ORA-01555 snapshot too old 保存在undo表空间中的数据不存在报错:

出现这种错的原因有:

(1)、查询时间太长,导致在undo段中的数据已经发生变化,报错。

(2)、使用flashback queries闪回查询在undo段中的某个时间点已经不存在的数据造成。

三、表空间参数配置:

1、UNDO_RETENTION配置:

UNDO_RETENTION参数表示,保留在undo表空间中的非事务数据的过期时间;0表示自动处理,表示数据有可能随时被覆盖。最大可设置2的32次方。

2、UNDO Retention guaranteeing设置:

语法为:ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

设置参数为guarantee时,新事务操作时发现undo表空间不足,数据库会让事务失败;如果设置为noguarantee时,数据库会强制清除undo空间,避免事务失败。

在实际过程中,只要做好数据库undo表空间磁盘容量使用的监控就OK了。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12005618/viewspace-1031478/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    6
  • 访问量
    4898