UNDO_RETENTION的内部实现

UNDO_RETENTION的内部实现: UNDO_RETENTION机制从Oracle 9i开始引入,为了实现这一机制,Oracle在Undo Segment Header上创建了一个Retention Table用于记录相关Undo存储的提交时间,从而实现其保留策略。接下来看一下这个Reten[......]

阅读全文

回滚段的前世今生

回滚段的前世今生: 在Oracle 9i之前,回滚表空间创建之后,Oracle随后创建回滚段供数据库使用,也可以手工创建或者删除回滚段进行维护,比如在开始事务之前,可以通过如下命令指定使用特定的回滚段: set transaction user rollback segment <roll[......]

阅读全文

并发控制和一致性读

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

阅读全文

回滚段存储的内容

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

阅读全文