无论什么时候进程或者用户回话修改过数据库里面的数据,oracle把它(数据库中的数据)被修改以前的存在过的旧值保存为undo data。这种设计为数据库使用者提供给了很多好处。
- 提允许用户改变他们的刚才的想法,回滚或者undo对数据库的改变。
- 支持读一致性。一旦一个查询已经开始,那么任何在查询以后的对底层的改变将不会反应到查询结果中。
- 支持闪回(flashback)查询。这一功能是在Oracle 9i中被首次受用的。flashback允许用户查看一个表的过去是什么样子。只要被请求的时间点的数据然仍然存在。,那么flashback查询就是可能的。
理解UNDO段(undo segments)
Undo Segments 也叫做rollback segments,在数据库中和其他的段的概念相似,就像表段,索引段。因为undo segments 也是用扩展(extents)组成,这也是有数据块依次组成。一个undo段也是装载的数据和表的数据类似。然而,这是相似之处。undo段必须被保存在的定类型的表空间,乘坐 undo tablespace。 尽管一个数据库可以拥有超过一个undo 表空间,但是同一个时刻只能有一个表空间是活动状态。undo 段搜集包含在一个事物中的一个或者许多表的undo信息。而且undo表空间按照需要自动增大或者减小,就像循环缓冲区。在一个undo段中填满扩展的是能回到段的开始,如果段的第一个扩展没有被活跃的事物使用。
在每个事物的开始,换句话说,当地一个数据库操纵语言(DML)命令在预先的一个提交前被发起,或者用户第一次请求数据库链接——事物被指派给一个在undo表空间的undo段。对任何表的任何改变在事物中,被记录到指派的undo段中。目前活跃的undo段的名字能被从动态性能视图v$rollname查询,你应该能看到类似下面的内容。
ps:数据字典视图DBA_ROLLBACK_SEGS显示在线的和不在线的所有的undo 段在system和undo段中的。
使用undo数据
undo数据是数据库中的旧值,当进程或者用书改变了一个表或者索引。undo数据为oracle 数据库的以下四个目标服务:
1、用户回滚一个事务;
2、DML操作和查询的读一致性;
3、数据库恢复操作;
4、flashback功能。
使用事务回滚
在第一章中,你了解了事务和他们怎样在数据库机构中被管理的。在用户层,你可能有一个或者几百个DML命令(就像 DELETE ,INSERT ,UPDATE,or MERGE)在一个特定的事务中,这些事务需要被标记为修改了一个或者多个表的一个进程或者用户所重做。 undo一个事务中的改变叫做回滚部分部分或者全部的事务。必须被回滚的改变被称作undo信息,回滚信息被存储在特别类型的表空间中,称作undo表空间。
当一个完整的事务被回滚,oracle回滚了所有事务开始的改变,使用保存的undo表空间中的回滚信息,释放包括在事务中的任何锁,并且结束事务。
如果失败发生在客户端或者网络上,异常终止了用户到数据库的链接,undo信息被一很多相同的方式使用,就像用户显示显示回滚事务一样。oracle使用事物开始保存在undo表空间中的信息撤销所有的改变。
读并发
分享到:
相关推荐
在并行 DML 中,Oracle 可以使用多个并行执行服务器来执行 DML 操作,多个会话同时执行,每个会话(并发进程)都有自己的 UNDO 段,都独立是一个事务。 启用并行 DML 需要显示的启用,例如: SQL> ALTER SESSION ...
在Oracle 11g中,这可能包括查询优化、索引策略、内存管理、并行处理和数据存储等方面的调整。 1. **查询优化**:Oracle的优化器是性能调优的核心。11g中的CBO(成本基优化器)更加智能,能够考虑更多的统计信息和...
Oracle数据库利用锁定机制来实现事务处理中的并发控制,保证在多用户环境下数据的一致性和并行性。 事务有四个基本特征,通常被称为ACID属性: 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不...
这些参数定义了数据库的内存结构、磁盘空间使用、系统资源限制、数据文件管理等多个方面,是优化Oracle数据库性能的关键因素。以下是对Oracle初始化参数的详细解读: 1. **SGA (System Global Area) 参数** - `SGA...
在企业级应用中,Oracle数据库因其稳定性和高效性而被广泛采用。然而,随着数据量的急剧增长和业务需求的不断变化,优化Oracle数据库性能成为确保系统高效运行的关键。本文将深入探讨Oracle数据库调优配置中的两种...
在并行处理和并发控制方面,书中的内容会涵盖并行查询、并行DML操作、分布式数据库的优化策略,以及如何有效管理数据库的锁定和事务。读者将学习如何平衡资源消耗与多用户访问之间的关系,以提高系统响应时间和吞吐...
公有回滚段常见于Oracle并行服务器环境中。 #### 特殊回滚段:DEFERED回滚段 当某个表空间处于离线状态时,如果存在正在进行的事务涉及该表空间中的数据,那么相关的回滚信息会被暂时保存在系统回滚段中。这种机制...
9i和10g引入了自动回滚段(Automatic Undo Segments),简化了回滚操作的管理,并增强了并发控制。 4. **并行执行**:Oracle 9i引入了并行查询(Parallel Query),10g进一步优化,允许大型查询和DML操作在多个...
Oracle数据库资源管理器(DBRM)是Oracle数据库中一个重要的特性,它提供了一种机制来控制和管理数据库资源的分配。自Oracle8i版本开始,DBRM成为企业版数据库的一项支持功能,旨在解决操作系统层面对资源分配可能...
Oracle是一款广泛使用的大型关系型数据库管理系统,它支持复杂的数据类型、事务处理和并发操作,适用于大型企业级应用。了解Oracle的基本概念,如表、视图、索引、存储过程、触发器等,是优化的基础。 2. **数据库...
Oracle数据库是世界上最广泛使用的数据库系统之一,尤其在企业级应用中占据重要地位。本文将深入探讨Oracle数据库的基础概念、SQL优化以及锁机制。 首先,Oracle数据库的对象存储结构是理解其工作原理的关键。在...
Oracle 12c Release 2 (12.2.0.1) 是一款先进的关系型数据库管理系统,提供了诸多性能优化和管理功能。在RHEL 7.4操作系统环境下,为了确保Oracle数据库高效运行,需要对一系列系统参数进行适当的配置。以下是一些...
1.3.1双机并行 1.3.2高可用性 1.3.3易伸缩性 1.3.4低成本 1.3.5高吞吐量 1.4 RAC存在的问题 1.4.1稳定性 1.4.2高性能 1.5 RAC软件 1.5.1存储管理软件 1.5.2集群管理软件 1.5.3数据库管理软件 1.6本章小...
Resource Manager(DBRM)是ORACLE数据库中的一个关键组件,它允许管理员定义数据库资源计划,规划CPU、UNDO空间和连接数等资源的使用。DBRM通过监控各个用户的资源使用情况,动态调整资源分配,避免单一应用过度...
理解如何调整这些缓存的大小,以及何时使用redo log、undo segment和临时表空间,是优化性能的重要一环。适当的缓存大小可以减少磁盘I/O,进而提高性能。 另外,数据库的并发控制,如锁定和行级锁定机制,也会影响...
Oracle数据库是全球广泛使用的大型企业级关系型数据库系统,其性能优化是数据库管理员和开发人员必须掌握的关键技能。Oracle性能优化旨在最大化系统资源利用率,提高数据处理速度,降低响应时间,提升用户体验。以下...