`

验证undo空间不足时的出现的情况

阅读更多

先复习下什么是undo表空间

摘抄http://blog.sina.com.cn/s/blog_4e7cf89d01000cnp.html

 

UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和

DELETE)时,oracle会将这些操作的旧数据写入到UNDO段,在oracle9i

之前,管理UNDO数据时使用(Rollback Segment)完成的.从oracle9i

开始,管理UNDO数据不仅可以使用回滚段,还可以使用UNDO表空间.因

为规划和管理回滚段比较复杂,所有oracle database 10g已经完全

丢弃用回滚段.并且使用UNDO表空间来管理UNDO数据.


UNDO数据也称为回滚(ROLLBACK)数据,它用于确保数据的一致性.当

执行DML操作时,事务操作前的数据被称为UNDO记录.UNDO段用于保存

事务所修改数据的旧值,其中存储着被修改数据块的位置以及修改前

数据,

UNDO数据的作用.

1,回退事务

当执行DML操作修改数据时,UNDO数据被存放到UNDO段,而新数据则被

存放到数据段中,如果事务操作存在问题,旧需要回退事务,以取消事

务变化.假定用户A执行了语句UPDATE emp SET sal=1000 WHERE

empno=7788后发现,应该修改雇员7963的工资,而不是雇员7788的工

资,那么通过执行ROLLBACK语句可以取消事务变化.当执行ROLLBACK

命令时,oracle会将UNDO段的UNDO数据800写回的数据段中.

2,读一致性

用户检索数据库数据时,oracle总是使用用户只能看到被提交过的数

据(读取提交)或特定时间点的数据(SELECT语句时间点).这样可以确

保数据的一致性.例如,当用户A执行语句UPDATE emp SET sal=1000

WHERE empno=7788时,UNDO记录会被存放到回滚段中,而新数据则会

存放到EMP段中;假定此时该数据尚未提交,并且用户B执行SELECT

sal FROM emp WHERE empno=7788,此时用户B将取得UNDO数据800,而

该数据正是在UNDO记录中取得的.

3,事务恢复

事务恢复是例程恢复的一部分,它是由oracle server自动完成的.如

果在数据库运行过程中出现例程失败(如断电,内存故障,后台进程故

障等),那么当重启oracle server时,后台进程SMON会自动执行例程

恢复,执行例程恢复时,oracl会重新做所有未应用的记录.回退未提

交事务.

4,倒叙查询(FlashBack Query)

倒叙查询用于取得特定时间点的数据库数据,它是9i新增加的特性,

假定当前时间为上午11:00,某用户在上午10:00执行UPDATE emp SET

sal=3500 WHERE empno=7788语句,修改并提交了事务(雇员原工资为

3000),为了取得10:00之前的雇员工资,用户可以使用倒叙查询特征.

 

1.验证undo空间不足时的出现的情况
这个语句,可以看出现在未commit的事务占用的block数

select addr,used_ublk from v$transaction;

插入一条语句未提交,提交以后就不会在这个视图中了

 可以看到已经有一个commit在使用,如在表中插入几条数据,还是一样占用一个,因为插入这样一条数据占用的空间很小,但是插入数据多就不一样了

试着插入一万条记录,但是未提交
begin
for i in 1..10000
loop
insert into m values(i,'ahaoge');
end loop
;
end;
/

 

此时占用的block为87个
做一个试验,如果插入100万条记录为提交,按照上面的计算,计算大概占用的的block为8700,乘以block的大小,大概占用67M的空间,那么就会在undo中写入67M的空间,现在
使用的undo空间改为myundotbs,只有10M,会出现什么情况呢?



 再插入100万条未提交的数据


会出现这种错误
得出结论。
undo的大小还是很重要的

 

 

 

  • 大小: 1.1 KB
  • 大小: 1.4 KB
  • 大小: 1 KB
  • 大小: 2.1 KB
  • 大小: 1.3 KB
  • 大小: 3.8 KB
  • 大小: 3.7 KB
分享到:
评论

相关推荐

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    目录 推荐序 前言 第1章 认识Oracle RAC ...15.3.6 UNDO表空间的调整 15.4应用系统 15.4.1应用拆分 15.4.2 SQL执行过程 15.4.3 SQL解析 15.4.4 SQL优化 15.4.5 SQL行源生成 15.4.6 SQL执行 15.5本章小结

    Oracle自学(学习)材料 (共18章 偏理论一点)

    10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表...

    深入解析OracleDBA入门进阶与诊断案例 3/4

     8.17 诊断案例之一:释放过度扩展的UNDO空间   8.18 特殊情况的恢复   8.19 诊断案例之二:回滚段损坏的恢复  第9章 等待事件   9.1 等待事件的源起   9.2 从等待发现瓶颈   9.3 Oracle 10g的...

    深入解析OracleDBA入门进阶与诊断案例 2/4

     8.17 诊断案例之一:释放过度扩展的UNDO空间   8.18 特殊情况的恢复   8.19 诊断案例之二:回滚段损坏的恢复  第9章 等待事件   9.1 等待事件的源起   9.2 从等待发现瓶颈   9.3 Oracle 10g的...

    深入解析OracleDBA入门进阶与诊断案例 4/4

     8.17 诊断案例之一:释放过度扩展的UNDO空间   8.18 特殊情况的恢复   8.19 诊断案例之二:回滚段损坏的恢复  第9章 等待事件   9.1 等待事件的源起   9.2 从等待发现瓶颈   9.3 Oracle 10g的...

    深入解析Oracle.DBA入门进阶与诊断案例

    8.17 诊断案例之一:释放过度扩展的UNDO空间 396 8.18 特殊情况的恢复 399 8.19 诊断案例之二:回滚段损坏的恢复 402 第9章 等待事件 406 9.1 等待事件的源起 406 9.2 从等待发现瓶颈 408 9.2.1 V$...

    Oracle9i的init.ora参数中文说明

    只有行锁将用于SELECT FOR UPDATE, 但在更新时将获取表锁。 值范围: ALWAYS | DEFAULT | INTENT 默认值: ALWAYS shared_servers 说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。 值范围: ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    1.2.6 Undo表空间 1.2.7 服务器参数文件 1.2.8 后台进程 1.2.9 数据库管理员 1.3 Oracle Database 11g的基本数据类型 1.3.1 varchar2 1.3.2 数字 1.3.3 日期 1.3.4 时间戳 1.3.5 clob 1.3.6 blob 1.4 表 1.5 存储...

    JAVA_API1.6文档(中文)

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    RouterOS2.9.6.with.crack及配置动画

    主要特征: l 完全一至的用户接口 l 运行时配置和监控 l 支持多个连接访问 l 用户策略配置 l 活动历史记录,undo/redo操作 l 安全模式操作 l Scripts能事先安排执行时间和执行内容,脚本支持所有的命令操作。...

    Oracle Database 11g初学者指南--详细书签版

    1.2.6 Undo表空间 5 1.2.7 服务器参数文件 5 1.2.8 后台进程 5 1.2.9 数据库管理员 7 1.3 Oracle Database 11g的基本数据类型 8 1.3.1 varchar2 8 1.3.2 数字 9 1.3.3 日期 9 1.3.4 时间戳 9 1.3.5 clob ...

    java api最新7.0

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    JDK_1_6 API

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    JavaAPI1.6中文chm文档 part1

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    JavaAPI中文chm文档 part2

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    [Java参考文档]

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

    Java 1.6 API 中文 New

    javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释。 javax.xml.bind.annotation.adapters XmlAdapter ...

Global site tag (gtag.js) - Google Analytics