Oracle 的安全保障 commit &checkpoint

 Oracle 的安全 commit &checkpoint

 

  1. commit ---lgwr
    1. 事务相关的操作,保证事务的安全。
    2. commit标志着事务的结束.意味着别人对你事务操作的结果可见.
    3. commit后数据可能在内存里,也可能在磁盘里,
    4. commit后没有机会回滚了,除非恢复数据.
    5. 标识着用户的决定,数据的生效.
    6. commit后,这条记录产生的redo重做日志是放在log buffer内存里面的,oracle会让log bufferredo重做日志写到磁盘上,commit才会返回提交完成.
    7. 数据修改完是由redo保护.
    8. redo是顺序的在redo文件上写的,非常快.而数据块写到磁盘中,需要先去磁盘找数据文件所在位置,很慢.
  • 数据的回滚

SQL> rollback;

 

回滚的过程就是从回滚段里拿到刚刚执行的这条语句产生的回滚,然后应用到以前的数据块上.

回滚的前提是没有commit.一旦提交了,就不能回滚了.

 

如果网络中断,会话中断,oracle会强制回滚

 

  1. checkpoint -- dbwr
    1. 数据相关的操作,保证数据的安全。
    2. 把修改了的数据写在磁盘上(包括修改完,提交、修改完,未提交)
    3. 执行这条语句后,就会将所有的脏数据写入磁盘.
    4. 脏数据越来越多,会占用位置,checkpoint是为了保证空间
    5. 减少恢复时间.

SQL> alter system checkpoint;

 

System altered.

原文地址:https://www.cnblogs.com/thescentedpath/p/oraclecommit.html