在oracle中执行commit操作后,是将SGA数据缓冲区中的数据写入数据文件吗?
  但是我看到书上说的:当执行commit时,只有后台进程LGWR会将事务变化写入到重做日志,后台进程DBWR只有在检查点时刻才会将脏缓冲区写入到数据文件中!  那要是这样的话,如果没到检查点时刻,我commit了,然后另外登陆读取数据库数据,则数据还没有修改啊???

解决方案 »

  1.   

    看看我的BLOG:
    http://blog.csdn.net/zhpsam109/archive/2007/11/02/1862819.aspx
      

  2.   

    在ORACLE中,当会话执行了COMMIT后,ORACLE的后台进程LGWR会将SGA中日志缓冲区中的事务变化写入日志文件,此时,ORACLE的后台进程DBWR也会将SGA中数据缓冲区中的内容写入数据文件,ORACLE服务会释放该会话占用的所有资源与锁.所以,当你执行了COMMIT后,则你的事务对数据库所做的所有修改,将成为永久的,其实,当你执行COMMIT,LGWR进程将事务变化写入日志后,则表示事务对数据库所做的修改也是永久的了.