Oracle回滚段的概念,用法和规划及问题的解决

回滚段概述 

  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。

  回滚段的作用 

  事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。

  事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。

  读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。而且,当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。

Oracle回滚段的概念,用法和规划及问题的解决

时间: 2024-08-08 13:35:50

Oracle回滚段的概念,用法和规划及问题的解决的相关文章

Oracle Undo回滚段深入解析_超越OCP精通Oracle视频课程培训15

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库UNDO的作用及相关数据字典,UNDO自动管理,DDL与DML操作与UNDO的关系,UNDO表空间满了怎么办?模拟ora-01555,UNDO表空间损坏怎么处理?Undo段头/回滚块/事务槽解析,UNDO回滚段头的深入分析,事务提交前后oracle内部操作?深入分析前镜像及一致性读. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http:

简单了解Oracle的回滚段

因为上一次研究了Oracle的事务一致性,中间查阅资料的时候,看到这个地方与回滚段有关.所以就罗列了以下简单的知识.更为深层次的就不再深挖了,个人感觉对于事务的一致性和隔离级别是开发经理应该了解的,但是回滚段的具体机制应该是DBA的学习范畴了. 回滚段(ROLLBACK SEGMENT)的作用: 回滚段是在事务中间过程中,将修改前的状态记录下来,记录的过程中加上类似时间戳的scn.它的主要作用有两个: 当事务出现错误回滚的时候,原始数据可以从回滚段中找回. 实现读一致性.当读操作读取到某一行,发

查询oracle 数据库中回滚段中一个时间点被修改的表数据并还原表中原来数据

利用下面的SQL就可以查处最近更改的数据. SQL> SELECT ID,NAME,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC; 通过以上小实验可以看出,VERSIONS_ST

oracle回滚机制深入研究

这篇文章主要描述oracle的回滚机制,篇幅可能较长,因为对于oracle的回滚机制来说,要讨论和描述的实在太多,只能刷选自己认为最有意义的一部分进行深入研究和分享 一.我们来看一个DML语句的处理过程描述 update undotest set object_type='VIEW' where object_type='PROCEDURE'; 检查shared pool中是否存在相同的语句,如果存在,重用执行计划,执行扫描运算,如果不存在,执行硬解析生成执行计划 根据执行计划中的扫描运算,检查

6. Oracle 回滚(ROLLBACK)和撤销(UNDO)

转载自:http://blog.csdn.net/leshami/article/details/5731158 一.回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段. --在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 --在9i及后续版本 提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo

mysql5.6和mysql5.7分配undo回滚段的区别

1.mysql5.7中分为2类:临时表空间回滚段和普通回滚段. 2.mysql5.6中没有区分. As of MySQL 5.7.2, 32 undo logs are reserved for use by temporary tables and are hosted in the temporary table tablespace (ibtmp1). To allocate additional undo logs for data-modifying transactions that

Undo(回滚段)对应的系统参数

回滚段表空间,为什么叫Undo,而不是rollback?我们对数据库操作理解为do,所以反向操作就是undo,通过对应的undo就可以达到回滚目的. 第一行,undo_management 为AUTO表示自动回滚段管理,空间不够时自动扩展. 第二行,undo_retention 为900表示DML需要记录前镜像,当commit后,回滚段前镜像被打上了可以覆盖重新使用的标记,但要在900秒后才可以. 第三行,UNDOTBS1为回滚段表空间的名字 原文地址:https://www.cnblogs.c

oracle undo回滚段详解

1.Undo是干嘛用的?   在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过). 一个很典型的列子,银行转账,其实其需要两步操作,第一步先将你账户上的钱减去,第二步把被转账户的钱加上,(先减后加,出了问题银行不吃亏.呵呵!)这样就是一个完整的事务.如果执行了一半,你的钱减了,被转账户的钱没加上,这个时候事务就要

oracle回滚误删并且commit的表

1.恢复到某个时刻 insert into qual_temp_detail select * from qual_temp_detail as of timestamp to_date('2014-12-29 08:30:22', 'yyyy-mm-dd hh24:mi:ss') 其中qual_temp_detail是要回滚的数据表名称. to_date函数的第一个参数是要回滚到的时间点.妈妈再也不怕我手滑了! 2. 恢复到15分钟以前 --闪回到15分钟前 select * from ord