第九章:事务
9.1.概念:事务是由一个可执行的SQL语句开始,一个可执行SQL语句产生对实例的调用。在事务开始时,被赋给一个可用回滚段,记录该事务的回滚项。一个事务以下列任何一个出现而结束。 当COMMIT或ROLLBACK(没有SAVEPOINT子句)语句发出。 一个DDL语句被执行。在DDL语句执行前、后都隐式地提交。 用户撤消对Oracle的连接(当前事务提交)。 用户进程异常中止(当前事务回滚)。
9.2.ACID:原子性;一致性;隔离性;持久性。
9.3.事务控制:
显示控制------使用显式控制命令;
隐式控制------某些条件下,DDL语句或程序退出等;
9.4.使用COMMIT实现事务控制;
用户显式提交前,oracle数据库内部发生了如下变化:
u 在非系统还原段中生成要更改的数据备份;
u 在重做日志缓冲区中创建重做日志选项;
u 在数据库高速缓冲区修改数据(删除或更新):
用户显式提交后,oracle数据库内部发生如下行为:
u 在重做记录的事务表中标识上已经提交事务的SCN,说明事务已经提交了;
u LGWR将事务的重做日志信息和已提交事务的SCN号写入重做日志文件,此时认为提交完成;
u 释放oracle持有的对更改的数据对象的锁,标识事务完成;
9.5.rollback事务回滚;
9.6.程序异常退出对事务的影响;程序正常退出时会隐式提交;
9.7.使用autocommit实现事务自动提交:
Set autocommit on/off;