数据(表或索引)块的数据层由一条条数据行(即表上的一行)组成,类似地,undo块的数据层由一条条undo记录组成,redo块的数据层由一条条redo记录组成。
块的块头格式里有个类型字节,用于区分块的不同用途,如undo block,undo header block等。若类型字节等于6,表示事务型的块,则还有一个参数用于区分是表还是索引。具体见《DBA思想的天空》数据块结构一章。
数据(表或索引)块的块头有一个SCN,表示数据块上最近一次有一条数据行被更新后而提交的时间(注意更新的时间和提交的时间可以是不一样的,更新后可以隔个长时间再提交的),数据块还有一处SCN在事务槽上的scn/fsc字段上。
一个表段中的各个数据块的块头中的SCN(即最近一次块内有数据行更新的时间)是可以不一样的。因为例如表上只更新一行,而该行在块A上,不在块B上,则只有块A的块头里的SCN变了,块B的没有变化还是。
-----摘自《事务和事务槽概念两个分开等杂记》