Oracle 的安全保障 commit &checkpoint
Oracle 的安全 commit &checkpoint
- commit ---lgwr
- 事务相关的操作,保证事务的安全。
- commit标志着事务的结束.意味着别人对你事务操作的结果可见.
- commit后数据可能在内存里,也可能在磁盘里,
- commit后没有机会回滚了,除非恢复数据.
- 标识着用户的决定,数据的生效.
- commit后,这条记录产生的redo重做日志是放在log buffer内存里面的,oracle会让log buffer将redo重做日志写到磁盘上,commit才会返回提交完成.
- 数据修改完是由redo保护.
- redo是顺序的在redo文件上写的,非常快.而数据块写到磁盘中,需要先去磁盘找数据文件所在位置,很慢.
- 数据的回滚
SQL> rollback;
回滚的过程就是从回滚段里拿到刚刚执行的这条语句产生的回滚,然后应用到以前的数据块上.
回滚的前提是没有commit.一旦提交了,就不能回滚了.
如果网络中断,会话中断,oracle会强制回滚
- checkpoint -- dbwr
- 数据相关的操作,保证数据的安全。
- 把修改了的数据写在磁盘上(包括修改完,提交、修改完,未提交)
- 执行这条语句后,就会将所有的脏数据写入磁盘.
- 脏数据越来越多,会占用位置,checkpoint是为了保证空间
- 减少恢复时间.
SQL> alter system checkpoint;
System altered.