![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle redo log
Rynax0
这个作者很懒,什么都没留下…
展开
-
oracle 11g归档日志研究_1
oracle的数据库操作都会被记录在redo log中,用来进行undo(回滚)或在数据库异常的时候redo(重做)。redo log又分为online(在线日志)和archive(归档日志)两部分。oracle默认有3个在线日志文件,通常它们是按顺序写满一个再写下一个,而写满的在线日志文件会被整理为归档日志。在每个在线日志内部,可能按顺序或随机填写数据。 在线日志和归档日原创 2016-02-28 10:51:44 · 1034 阅读 · 0 评论 -
oracle 11g归档日志研究_2
从第3块开始,块里面存储着oracle的所有操作记录。块结构很简单,只有块头和块体:typedef struct bk { Redo_bh blockhead; uint8_t buf[496];}Redo_bk;块头与上一篇介绍过的一致:typedef struct bh { uint32_t signature; //签名 uint32原创 2016-02-28 10:54:44 · 582 阅读 · 0 评论 -
oracle 11g归档日志研究_3
记录头(record head)格式:typedef struct rh0 { uint32_t recordlen; uint8_t VLD; //直接决定整个record head大小 uint8_t unknown0; uint16_t rhscnwrapper; uint32_t rhscnbase; uint16_t su原创 2016-02-28 10:56:54 · 543 阅读 · 0 评论 -
oracle 11g归档日志研究_4
change的内容,是oracle日志转化为SQL语句的核心,也是最麻烦,变化最多的地方。先说opcode,opcode的含义网上随便一搜有很多,真正对我有用的,只有增删改,至于什么搜索、索引等操作,我根本就不关心。5.1:包含信息较多,每个增删改一定对应一个有效的5.1,这个5.1中将包含原始数据,用来在回滚(undo)时使用。另外还会有大量的5.1操作,目前我并不理解其他5.1原创 2016-02-28 11:07:12 · 594 阅读 · 0 评论