一、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了。
分享到:
相关推荐
oracle Undo表空间管理,oracle 学习人员必看的不可缺少的资料。
比较深入浅出的描述了基于oracle10g/11g的UNDO表空间的管理
oracle 收缩undo表空间,需要收缩Undo表空间时特别有用。
演示如何收缩Oracle数据库的undo表空间
Oracle释放过度使用的Undo表空间,脚本
地震前兆Oracle数据库UNDO表空间持续增长修复.pdf
oracle 9i UNDO表空间数据文件丢失恢复得全过程。。
ORACLE的UNDO表空间
一定要意识到,如果 undo 表空间中存在空间压力时,我们不保证前镜像一定会保留这么长时间。 因此,以下公式可用于计算佳 undo 表空间大小: 从 Oracle 10g 开始,您可以选择使用 GUARANTEE 选项,以确保在...
UNDO表空间用来存放改变前的旧值。里面也有段区块,ORACLE自动建立生成、自动使用UNDO段。 作为高级别的DBA是需要知道ORACLE如何使用UNDO段的。 1 Undo表空间及管理方式 ORACLE开始一个事务的时候,会用到表空间。...
Oracle中,当Temp和Undo表空间无限增大时,回收这部分空间就是个问题
Oracle 12c中的表空间管理、用户和角色、临时Undo
undo表空间恢复
undo 表空间利用率 处理 事务 回滚等介绍 以及如何切换undo表空间
oracle 数据库的 undo表空间管理 全面分析介绍
Oracle 9i数据库中自动Undo表空间管理.pdf
oracle数据库 关键表空间undo 的详细讲解 功能 和一些优势
主要介绍了Oracle创建新undo表空间最佳实践(包含段检查),非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
Oracle Undo学习资料,对Undo的介绍有利于对回滚和Undo表空间有一个比较清晰地认识
甲骨论-08-Undo表空间管理 本章详细介绍了undo表空间的工作原理以及与undo相关的数据字典