oracle 11g归档日志研究_1
来源:互联网 发布:ubuntu 14.04 selinux 编辑:程序博客网 时间:2024/05/19 09:10
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;
第2块的数据格式:
typedef struct scn { uint32_t scnbase; uint16_t scnwrapper; uint16_t filler;}Redo_scn;typedef struct fh1 { Redo_bh blockhead; uint32_t unknown0; uint32_t comvsn; //Compatibility Vsn uint32_t dbid; uint8_t dbname[8]; //"ORCL"(sid) uint32_t controlseq; uint32_t filesize; uint32_t blocksize; uint16_t filenum; uint16_t filetype; uint32_t activid; uint8_t nouse0[36]; //0 uint8_t descript[64]; uint32_t nab; //next available block uint32_t resetcount; Redo_scn resetscn; uint32_t hws; //后3字节为0 uint32_t thread; Redo_scn lowscn; uint32_t lowscntime; Redo_scn nextscn; uint32_t nextscntime; uint32_t unknown11; Redo_scn enablescn; uint32_t enablescntime; Redo_scn thrclosescn; uint32_t thrclosescntime; uint8_t unknown13[52]; Redo_scn prevresetscn; uint32_t prevresetcount; uint8_t nouse1[152]; //0 uint8_t unknown14[36]; uint8_t nouse2[28]; //0}Redo_fh1;
第1块与其他块完全不同,它不含有块头,也不被包含在块总数之内。从第2块开始,所有的数据块的前16个字节为块头,格式:
typedef struct bh { uint32_t signature; //签名 uint32_t blocknum; //块号 uint32_t sequence; //顺序号 uint16_t offset; //最高位1需过滤掉 uint16_t checksum;}Redo_bh;
下面详细研究归档日志。
0 0
- oracle 11g归档日志研究_1
- oracle 11g归档日志研究_2
- oracle 11g归档日志研究_3
- oracle 11g归档日志研究_4
- Oracle 11g 归档日志
- oracle 11g 归档日志分析
- ORACLE 11g archive log 归档日志
- Oracle 11g 删除归档日志
- Oracle 10G归档日志
- Oracle 11G RAC开启和关闭归档日志
- oracle 11g rac开启归档日志和闪回
- 更改Oracle 10G归档日志目录
- 改变oracle 10g 归档日志dest
- oracle 11g rac 环境下 静态监听的配置 以及 归档日志备份
- Oracle 10g (归档与非归档)日志模式切换、日志管理
- Oracle 10g 归档日志(Archive Log )
- Oracle 10g 归档日志满了的解决办法
- Oracle 10g 归档日志满了的解决办法
- 二叉树三种遍历算法递归和非递归实现
- VAST Challenge 2015 Mini-Challenge 2
- 【UVa】10763 – Foreign Exchange
- C++11以前的序列点
- Java数据结构----树--红黑树
- oracle 11g归档日志研究_1
- java web文件上传功能实现
- .NET(C#)连接各类数据库-集锦
- 【UVa】1600 – Patrol Robot
- 无监督学习与维度约减 机器学习基础(7)
- Win7系统32位Oracle11g客户端安装详述
- Eclipse 无法启动Tomcat原因总结
- 【UVa】11727 – Cost Cutting
- javascript:void(0)