oracle commit提交到底作了什么

oracle commit提交到底作了什么 分类: Linux

 

oracle commit所作的工作如下:
1,产生一个scn
  与此事务相关联的undo tablespace的itl标志为提交即flag为-c--;
  并且为此事务分配一个唯一的scn并记录到undo tablespace的事务表中
2,lgwr把log buffer余下的重作日志条目写入到log file中;
  而且要把上述提交事务产生的scn一并写入到log file中
3,oracle把表及行上加的锁释放掉
  其它等待它的事务就可以继续工作了
4,删除保存点
5,如果提交事务所修改的数据块还在sga中;
 此时没有其它会话修改这些数据块
  数据块就清除这些数据块上的锁标志
  (最理想的情�r是:commit动作一产生就清除数据块上的锁标志,这样就不用之后的select清除数据块上的锁标志了)这个概念相当重要
 
  另:块清除会产生redo,因为可能select会产生redo,就可能会导致下次检查点发生写入这个数据块到datafile中
 
6,oracle标志commit完成


你可能感兴趣的:(oracle,linux,File,commit,事务所)