Looks like you've done a great deal of research. I took some time to study this (Christmas holiday, plenty of free time to kill!). You may have read Bug:3859770 "ORA-1578 IN-MEMORY BUFFER CORRUPTION". It says "seq: 0xff0x04 + 0x02 { Check Value stored in the block + Delayed Logging Change }
但是不知他的确实含义是什么?
When Oracle first read the block in the Buffer , it detected that this block was fractured an
d hence corrupt.
The block was corrupt because the tail of the block was not in sync with the head of the block in the cache layer.
Oracle then attempted to reread the same block again and still found the corrupt.
At this time , the block was already in the Buffer Cache and as you had db_block_checksum enabled { Fla
g = 0x06 } ,
it marked the block as corrupt so that a subsequent access of the same block should also fail.
The way Oracle marks the block as corrupt is by setting the Sequence Flag to 0xff { Invalid value } and also setting
the SCN of the block to 0x00000000.
Since DBV finds that this block has already been corrupted by the Oracle software in Memory , it does not report this
block as corrupt under the "Total Blocks Corrupt" section.
以上是ORACLE的解释