rollback segment,
提交后不一定马上就存放到文件中,DBWR进程会把脏缓存块写到数据文件中

解决方案 »

  1.   

    提交之前:
    1。修改前的数据放在回滚段中
    2。修改后的数据放在database buffer中3。生成日志项放到redo log buffer中。commit:
    1。在回滚中标记该事务已提交
    2。将redo log buffer中的项写入磁盘log文件rollback:
    1。将回滚段中的数据写回database buffer,并标记该事务已经回滚
    2。将redo log buffer中的项写入磁盘log文件处理事务的过程:
    每个数据块块头有一个ITL(interested transation list),列出了修改此块的所有事务和对应回滚段信息。
    当一个事务访问块中的数据时,通过ITL能发现该块中的记录是否被修改,如果被修改而且没有提交,则从回滚段中读取原来数据,如果没有被修改,直接读取。