ITPub博客

首页 > Linux操作系统 > Linux操作系统 > commit 做了什麽

commit 做了什麽

原创 Linux操作系统 作者:suqiansiyang 时间:2010-10-20 05:52:32 0 删除 编辑

提交完成,oracle 已經將此時間點之前的redo 寫入了重做日誌文件中,這個日誌寫完成之後,oracle 可以釋放用戶去執行其他任務。如果此後發生數據庫崩潰,那麼oracle可以從重做日誌中恢復這些提交過的數據,從而保證提交成功的數據不會丟失。這個保證是通過redo來實現的。

事務提交之後,Oracle 進行了以下操作:

1 撤銷表空間(undo tablespace)內部的事務表(transaction table )將記錄此次提交,Oracle 為此事務分配了一個唯一的系統變化編號(SCN),并將其記錄在事務裱中。

2 重做日誌寫進程將SGA內重做日誌緩衝區中的重做日誌條目寫入重做日誌文件。同時還將此事務的SCN也寫入重做日誌文件。由以上兩個操作構成的原子事件標誌著一個事務的成功的提交。

3 Oracle 釋放加于表或數據行上的鎖。

4 Oracle 將事務標記為完成。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23582874/viewspace-676323/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-08-16

  • 博文量
    11
  • 访问量
    36180