无论什么时候进程或者用户回话修改过数据库里面的数据,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表空间中的信息撤销所有的改变。
读并发
分享到:
相关推荐
Oracle释放过度使用的Undo表空间,脚本
oracle数据库 关键表空间undo 的详细讲解 功能 和一些优势
oracle版本的undolog建表语句。 2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地...
里面也有段区块,ORACLE自动建立生成、自动使用UNDO段。 作为高级别的DBA是需要知道ORACLE如何使用UNDO段的。 1 Undo表空间及管理方式 ORACLE开始一个事务的时候,会用到表空间。将修改前的数据保存在UNDO段里。 ...
演示如何收缩Oracle数据库的undo表空间
Oracle 9i数据库中自动Undo表空间管理.pdf
oracle Undo表空间管理,oracle 学习人员必看的不可缺少的资料。
oracle undo的更深一层的东西,能解决一定的undo问题。
Oracle_Undo与Redo的通俗
oracle日志,Undo日志记录某数据被修改前的值,可以用来在事务失败时进行rollback;Redo日志记录某数据块被修改后的值,可以用来恢复未写入data file的已成功事务更新的数据。
Oracle 12c中的表空间管理、用户和角色、临时Undo
oracle_redo_undo
Oracle 12C R2本地UNDO模式
oracle 收缩undo表空间,需要收缩Undo表空间时特别有用。
Oracle redo undo的说明解释
Oracle中,当Temp和Undo表空间无限增大时,回收这部分空间就是个问题
地震前兆Oracle数据库UNDO表空间持续增长修复.pdf
Oracle 面试宝典-undo.docx
BLOG_Oracle_lhr_【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较BLOG_Oracle_lhr_【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行...
ORACLE的UNDO表空间