1、oracle commit 以后是否可以回滚,rollback 是否必须写在commit之前 分为几种不同情况。 就是说,你提交了的数据是永久性的,rollback是在这个基础上进行备份的。 2、Oracle执行commit后到底做了什么? A、从databuffer中写数据给datafile; B、从log_buffer中写数据给redofile; C、同时发生一个checkpoint,在redo,datafile,Arcn(如有归档)中打上timestamp COMMIT是一个非常快的操作,当我们发布commit命令时,真正困难的动作已经完成, 3、COMMIT语句处理顺序 当事务提交时,Oracle分配一个唯一的顺序号SCN(System COMMIT处理步骤: Oracle 在下面情况提交事务: l 发出一个COMMIT语句。 l 执行DDL语句时。 l 离开Oracle时。 Oracle处理COMMIT的顺序是: 1)服务器为每个COMMIT产生一个SCN。使改变永久化。 2)LGWR进程将日志缓冲区数据 3)服务器释放表级和行级 4)用户被提示COMMIT完成。 5)服务器使事务已完成。
Oracle处理ROLLBACK的顺序是: 当下面情况发生时执行 l 发出ROLLBACK命令。 l 服务器进程放弃地终止 l 会话被DBA终止。 ROLLBACK 是对数据库的操作进行 1)服务器进程不做任何的 2)服务器释放表级和行级 3) 服务器使事务已完成。 |