[摘自]ORACLE9i_优化设计与系统调整[好书]
§1.4.2 COMMIT语句处理顺序
当事务提交时,Oracle分配一个唯一的顺序号SCN(System Change Number)给事务。数据库恢复总是基于该SCN号来进行处理。SCN号是记录在控制文件、数据文件、块头及重做日志文件中。
1.COMMIT处理步骤:
Oracle 在下面情况提交事务:
l 发出一个COMMIT语句。
l 执行DDL语句时。
l 离开Oracle时。
Oracle处理COMMIT的顺序是:
1)服务器为每个COMMIT产生一个SCN。使改变永久化。
2)LGWR进程将日志缓冲区数据并带有SCN一起写到重做日志文件。
3)服务器释放表级和行级锁。
4)用户被提示COMMIT完成。
5)服务器使事务已完成。
Oracle处理ROLLBACK的顺序是:
当下面情况发生时执行回滚:
l 发出ROLLBACK命令。
l 服务器进程放弃地终止。
l 会话被DBA终止。
ROLLBACK 是对数据库的操作进行撤消,步骤有:
1)服务器进程不做任何的改变。
2)服务器释放表级和行级锁。
3) 服务器使事务已完成。