事务是构成单一逻辑工作单元的操作集合,要么完整的执行,要么完全不执行。在程序中,事务以 BEGIN TRANSTATION语句开始,以COMMIT语句或ROLLBACK语句结束。
事务的ACID性质:
活动状态:在事务开始执行后,立即进入“活动状态”。在活动状态事务将执行对数据库的读写操作。
局部提交状态:事务最后一个语句执行完成后,进入局部提交状态。事务执行完了,但对事务的修改很可能还留在内存的系统缓存区中,所以还不能说事务真正结束。
失败状态:处于活动状态的事务还没到达最后一个语句就终止执行,此时就称事务进入失败状态。或者处于局部提交状态的事务遇到故障(如发生干扰,或未能完成对数据库的修改),也进入失败状态。
异常终止状态:处于失败状态的事务,很可能已经对磁盘中的数据进行了一部分的修改。为保证事务的原子性,应该撤销该事务已经对数据库的修改。
提交状态:食物进入局部提交状态后,并发控制系统将检查该事务与并发事务是否发生干扰现象。检查通过后,系统提交操作,将修改内容写到磁盘上。事务成功结束。
数据库恢复的具体实现方法如下:
平时做好两件事:转储和建立日志。
一旦发生故障,分两种情况处理:
事务故障可分为两种:可预期故障和非预期故障。
引起系统停止运转随之要求重新启动的事件称为系统故障。例如硬件故障、软件错误或掉电等几种情况。系统故障会影响正在运行的所有事务,但不破坏数据库。恢复办法是重新启动,重新启动时需要对非正常终止的事务进行处理,把数据库恢复到正确的状态。
重新启动时,具体处理分两种情况:
在发生介质故障或遭到病毒破坏时,磁盘上的数据库遭到毁灭性的破坏。此时恢复过程如下:
实际中,系统故障称为软故障,介质故障称为硬故障。