(三)、故障
事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性限制等。
“CPU故障”属于系统故障,系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误和突然停电等。
“硬盘损坏”属于介质故障,介质故障也称为硬故障(HardCrash)。硬故障是指外存故障,如磁盘损坏、磁头碰撞和瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
事务故障是指由于事务程序运行过程中,因为非预期的原因,导致在运行过程中不能达到预期的终点(COMMIT或显示的ROLLBACK),造成数据库的不一致。事务故障的恢复,即需要将产生故障的事务已经完成的对数据库的修改撤销。事务对数据库的修改内容被严格按照执行的时间顺序记录在日志中,可以通过逆向扫描日志文件,将产生故障的事务对数据库的操作逐一复原(UNDO),直到事务开始标志,就像该事务未执行一样,即完成恢复。