Oracle undo表空间与redo日志

宜家博客
35671
文章
0
评论
2019年10月9日09:01:56 评论 1086字阅读3分37秒

undo表空间与redo日志文件在Oracle中的作用非常重要,本文重点介绍undo回滚段的作用与特点,同时简单介绍undo与redo的区别和各自己的作用:

一.undo中数据的特点:
1。是数据修改前的备份,主要是保证用户的读一致性
2. 在事务修改数据时产生
3。至少保存到事务结束

二。undo数据的作用:
1.回滚(rollback)操作
2.实现读一致性与闪回查询
3.从失败的事务中还原数据
4. 非正常停机后的实例恢复

三.undo回滚段的特点:
1.回滚段是由实例自动创建用于支持事务运行的专用段,同样是区和块组成,回滚顶会按实际需要自动进行增长或收缩,是一段可以给指定事务循环使用的存储缓冲区。
2.每个事务只会使用一个回滚段,一个回滚段在同一时刻可能会服务于多个事务
3.当一个事务开始的时候,会指定一个回滚段,在事务进行的过程中,当数据被修改时,原始的数据会被复制到回滚段。
4。在回滚段中,事务会不断填充盘区,直到事务结束或所有的空间被用完,如果当前的盘区不够用,事务会在段中请求扩展下一个盘区,如果所有已分配的盘区都被用完,事务会覆盖最初的盘区或者在回滚段允许的情况下扩展新的盘区来使用.
5。回滚段存在于undo表空间中,在数据库中可以存在多个undo表空间,但同一时刻只能使用一个undo表空间。

四.回滚段中的数据类型:
回滚段中的数据主要分为以下三种:
1.Uncommitted undo information; 未提交的回滚数据,该数据所关联的事务并未提交,www.linuxidc.com用于实现读一致性,所以该数据不能被其它事务的数据所覆盖
2.Committed undo information;已经提交但未过期的回滚数据,该数据关联的事务已经提交,但是仍受到undo retention参数保持时间的影响
3.Expired undo information;事务已经提交,而且数据保存时间已经超过undo retention参数指定的时间,属于已经过期的数据
当回滚段满了后,会优先覆盖Expired undo information,当过期数据空间用完后,会再覆盖Committed undo information的区域,这时undo retention参数所规定的保持时间会被破坏,Uncommitted undo information的数据是不允许覆盖的,如果要求提交的数据在undo retention参数规定的时间内不会被覆盖,可以在undo表空间上指定RETENTION GUARANTEE,语法如下:
ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE;

继续阅读
weinxin
欢迎加入中国站长博客之家
本站的所有资源都会上传分享到博客之家,希望大家互相学习交流进步。
  • 版权声明: 发表于 2019年10月9日09:01:56
  • 转载注明:https://www.yjro.com/28855.html
Oracle重建控制文件 - Rebuild controlfile Linux-数据库

Oracle重建控制文件 – Rebuild controlfile

重建控制文件时DBA需要知道,但是也许整个职业生涯都不会再生产系统上遇见。 首先强调,备份是最安全,快捷,有效的恢复方式,一个DBA,如果没有规划好有效的备份,终有一天,他会被噩梦惊醒。 梦醒之后,就...
Oracle ORA-06502错误解决 Linux-数据库

Oracle ORA-06502错误解决

  作为熟练.Net码农以及非熟练Oracle用户很多时候Oracle总给我一种这货就是存心恶心我们的感觉。虽然不得不承认Oracle是个很好的产品,但是总有那么好几下被恶心到了。比如说今天遇到的奇怪...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: