关闭
侧边栏

UNDO_RETENTION的内部实现

Posted by dbtan on 十二月 28th, 2009

UNDO_RETENTION的内部实现: UNDO_RETENTION机制从Oracle 9i开始引入,为了实现这一机制,Oracle在Undo Segment Header上创建了一个Retention Table用于记录相关Undo存储的提交时间,从而实现其保留策略。接下来看一下这个Retention Table的内容,以下测试来自Oracle 11g数据库环境: sys@TQGZS11G> select banner
... ...
<阅读全文>

Oracle 10g的UNDO_RETENTION管理增强

Posted by dbtan on 十二月 28th, 2009

Oracle 10g的UNDO_RETENTION管理增强: 在AUM模式下,UNDO_RETENTION参数用以控制事务提交以后Undo保留的时间。该参数以秒为单位,9iR1初始值为900秒,在Oracle 9iR2增加为10800秒。但是这是一个NO Guaranteed的限制。也就是说,如果有其他事务需要回滚空间,而空间出现不足时,这些信息仍然会被覆盖。 从Oracle 10g
... ...
<阅读全文>

回滚段的前世今生

Posted by dbtan on 十二月 23rd, 2009

回滚段的前世今生: 在Oracle 9i之前,回滚表空间创建之后,Oracle随后创建回滚段供数据库使用,也可以手工创建或者删除回滚段进行维护,比如在开始事务之前,可以通过如下命令指定使用特定的回滚段: set transaction user rollback segment <rollback_segment_name>; 可以从数据库中查询这些回滚段的状态:
... ...
<阅读全文>

并发控制和一致性读

Posted by dbtan on 十二月 23rd, 2009

并发控制和一致性读: 允许多用户并发访问是数据库必须满足的功能,那么怎样实现并发访问、控制、数据修改就成了一个重要问题。一方面Oracle通过锁定机制实现数据库的并发控制,另一方面通过多版本(Multi-versioning Model)模型来进行并发数据访问。 通过多版本架构,Oracle实现了读取和写入的分离,使得写入不阻塞
... ...
<阅读全文>

回滚段存储的内容

Posted by dbtan on 十二月 23rd, 2009

回滚段存储的内容: 前面的日志中讲过,Redo中只会记录少量信息,这些信息足以重演事务;同样Undo中也只记录精简信息,这些信息足以撤销事务。 对于insert操作,回滚段只需要记录插入记录的rowid,如果回退,只需将该记录根据rowid删除即可;对于update操作,回滚段只需要记录被更新字段的旧值即可(前镜像),回退时
... ...
<阅读全文>


Copyright © 2009 - 2019 https://www.dbtan.com. All rights reserved.