oracle的数据库操作都会被记录在redo log中,用来进行undo(回滚)或在数据库异常的时候redo(重做)。redo log又分为online(在线日志)和archive(归档日志)两部分。oracle默认有3个在线日志文件,通常它们是按顺序写满一个再写下一个,而写满的 ...
oracle的数据库操作都会被记录在redo log中,用来进行undo(回滚)或在数据库异常的时候redo(重做)。redo log又分为online(在线日志)和archive(归档日志)两部分。
oracle默认有3个在线日志文件,通常它们是按顺序写满一个再写下一个,而写满的在线日志文件会被整理为归档日志。在每个在线日志内部,可能按顺序或随机填写数据。
在线日志和归档日志一样,都是由很多块组成,文件第1块作为文件头,包含块大小、块总数等信息,第2块作为数据库头,包含数据库信息(如版本号、数据库ID、文件序号等)。默认情况下,块大小为512bytes,也可能有1k、2k等的情况(我还没遇到),所以redo log文件大小一定是512字节的整数倍。
第1块的数据格式:
typedef struct fh0 { uint32_t unknown0; uint32_t unknown1; uint32_t unknown2; uint32_t unknown3; uint32_t unknown4; uint32_t blocksize; //每块大小(字节), 512/1024... uint32_t blockcount; //当前文件的总块数(不包括第一块) uint32_t unknown5; uint8_t nouse[480];}Redo_fh0;
原标题:oracle 11g归档日志研究_1
关键词:oracle
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。