在Oracle的Undo机制中,参数Undo_Retention扮演了“混淆者”的角色。论坛里面也有很多朋友对这个参数含义不是非常清楚。本篇我们就来讨论一下这个这个参数的含义和作用。 Oracle数据库 ORA-01555 快照过旧用户user1对表进行了更新操作,用户user2在user1还没有进行提交前读表中数据,而且是大批量的读取(打个比方:耗时3分钟)而在这3分钟内user1进...
原创
2022-08-16 20:12:42
221阅读
在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read)、回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery) 。 一致性读是相对于脏读(Dirty Read)而言的。假设某个表T中有10000条记录,获取所有记录需要15分钟时间。当前时间为9点整,某用户A发出一条查询语 句:select * fro
转载
精选
2013-04-25 09:36:45
846阅读
什么是回滚和撤销 1 update emp set sal=4000 where empno=7788语句执行过程1 检查empno=7788记录是否在buffer cache ,如果不存在,则读取到buffer cache 2 在回滚段表空间的相应回滚事务表上分配事务槽,这个操作需要记录redo log 信息
原创
2021-08-01 12:30:54
129阅读
UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,oracle会将这些操作执行前的旧数据 写入到 UNDO段,在oracle9i之前,管理UNDO数据时使用(Rollback Segment)完成的.从oracle9i开始,管理UNDO数据不仅可以使用回滚段,还可以使用UNDO表空间.因为规划和管理回滚段比较复杂,所有 oracle datab
原创
2012-08-09 22:56:00
528阅读
什么是回滚和撤销 1 update emp set sal=4000 where empno=7788语句执行过程1 检查empno=7788记录是否在buffer cache ,如果不存在,则读取到buffer cache 2 在回滚段表空间的相应回滚事务表上分配事务槽,
原创
2021-07-19 14:36:33
99阅读
undo 是用来回滚的,而且oracle 的undo有undo segment在数据文件的目录下有UNDO.LOG有这么一个物理的文件还有undo实际上只是逻辑上的undo,也就是说:undo是这样工作的insert-deleteupdate-update执行一个逻辑上相反的语句HWMhigh water mark水位线:因为undo并没有实际上在物理上清理掉一些datablock这里
原创
2014-03-05 23:23:15
554阅读
在开始之前,我们先来思考几个问题?
1. ora-01555错误的是怎么产生的?有什么办法解决?
该问题,参考我的Blog: Oracle ORA-01555快照过旧
2. 回滚段(回滚表空间)有什么作用?
3. 数据库启动的时候,如何加载回滚段(回滚段表空间)。
4. 回滚段的
原创
2010-11-29 16:12:03
915阅读
UNDO作用:1、回滚,rollback时2、构造CR块,提供读一致性3、回滚,实例恢复的时候undo表空区的状态:1、free 可以使用的回滚段的区2、active 表示此区中有活动的未提交的事务块 3、inactive 表示此区中的事务已经提交,但未过undo_retention默认900秒时间,原则上ORACLE不会覆盖他,但在UNDO空间不足,压力大时也会被覆盖。4
原创
2014-01-23 12:34:45
937阅读
为那保证一个事务的原始性和完整性,就引这入undo 的概念。Undo就是用来记录保存事务操作过程中的数据,如
原创
2023-11-03 09:24:46
171阅读
在开始之前,我们先来思考几个问题?1.ora-01555错误的是怎么产生的?有什么办法解决?该问题,参考我的Blog:OracleORA-01555快照过旧
原创
2022-01-06 14:10:10
210阅读
Undo是干嘛用的? 在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务。我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成。那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过)。 一个很典型的列子,银行转账,其实其需要
原创
2021-08-27 11:44:54
515阅读
缓冲池 Buffer Pool首先,对于 InnoDB 存储引擎来说,数据都是放在磁盘上的,存储引擎要操作数据,必须先把磁盘里面的数据加载到内存里面才可以操作。磁盘 I/O 的读写相对于内存的操作来说是很慢的。如果我们需要的数据分散在磁盘的不同的地方,那就意味着会产生很多次的 I/O 操作。所以,无论是操作系统也好,还是存储引擎也好,都有一个预读取的概念。也就是说,当磁盘上的一块数据被读取的时候,
# MySQL Undo Tablespace的作用及实现步骤
## 1. MySQL Undo Tablespace的作用
MySQL Undo Tablespace主要用于实现事务的回滚(rollback)操作。当执行一个事务时,MySQL会将事务的修改操作记录到Undo日志中,如果事务需要被回滚,MySQL可以利用Undo Tablespace中的记录来撤销事务对数据库的修改。
## 2
原创
2023-07-23 12:26:35
77阅读
Oracle redo,What is it?Oracle redo日志是由 redo record组成的,而redo record记录的是oraclesegment中单个block的改变,把这些改变记录下来,用于重建oracle 数据库,redo record还有记录的是:undo segment中的block的改变,redo也可以用来恢复oracle undosegment。Com
原创
2014-02-27 11:07:39
870阅读
一、What isundoEvery Oracle database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of ...
原创
2021-08-09 17:54:14
665阅读
一. undo 的一些准备知识在之前的blog里有对undo segment 有说明: 1.1 当undo_management被设置成MENUAL时使用系统回滚段, 即将undo records 记录到SYSTEM 表空间下的SYSTEM段。 SQL> col segment_name format a10SQL> select segment_name,tablespace_n
转载
2011-08-09 14:26:00
60阅读
一. undo 的一些准备知识在之前的blog里有对undo segment 有说明: Current online Redo 和 Undo 损坏的处理方法
转载
2011-08-09 14:26:00
66阅读
Undo是干嘛用的? 简单理解,就相当于Windows下的回收站。 你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条ROLLBACK语句请求回滚,就可以利用这些undo信息将数据放回到修改前的样子。而redo用于在失败时重放事务(即恢复事务),undo则用于取消一条语句或一组语句的作用。 ...
转载
2015-06-05 09:49:00
181阅读
2评论
一、What isundoEvery Oracle database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of ...
原创
2022-04-06 15:04:41
565阅读
一:请描述什么是Oracle Undo。二:请描述UNDO的作用。三:请谈谈你对Manual Undo Management和Automatic Undo Management管理的理解。四:请描述UNDO Retention。五:如何确保在undo_retention期间的数据不会被覆盖。六:请描述ORA-01555错误原因和解决思路。七:请描述LOB字段产生ORA-01555错误原因和解决思路
转载
2022-07-13 14:44:39
249阅读