事务处理过程

1. 开始一个事务。进入“事务待命”状态。
2. 在“事务待命”状态,记录事务中改变的数据库记录。此
改变不能直接改变数据库中的值,必须先用一个顺序
的“事务日志”记录在一边。同时,对于要改变的原始记
录加锁,让其它用户无法读和写。如果记录已经被其
它事务加锁,则报错。
3. 在“事务待命”,如果用户给出commit transaction命
令,则进入“事务拷贝”状态,拷贝所有加锁的记录成备
份。
4. 上面3执行完,则进入“事务更新”状态,用“事务日志”中
记录一一更新实际的数据库记录。
5. 上面4执行完,则进入“事务结束”状态,释放所有的记
录锁,然后抛弃“事务日志”和备份的原数据库记录。
6. 上面5做完后,事务被删除

但是,最为关键的是,事务系统必须执行
以下过程:一但数据库由于软件、硬件问
题发生故障,重启动后,一旦有事务没正
常删除,则:
– 7. 如果在“事务待命”、“事务结束”状态,则重新
从5中结束事务的动作开始执行。
– 8. 如果在“事务更新”状态,则重新从4开始更新
记录,并继续想下执行。结果,虽然系统崩溃
过,但事务仍然能正常提交。

posted on 2008-12-06 21:01  鱼跃于渊  阅读(218)  评论(0)    收藏  举报

导航