1 | 事务故障(transaction failure) | 由于程序执行错误而引起事务非预期的、异常终止的故障。 (1)逻辑错误。如非法输入、找不到数据、溢出、超出资源限制等原因引起的事务执行失败。 (2)系统错误。系统进入一种不良状态(如死锁),导致事务无法继续执行。 事务故障意味着事务没有达到预期终点(COMMIT或者显示ROLLBACK),因此数据库可能处于不正确状态。 恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经做出的任何对数据库的修改,这类恢复操作称为事务撤销(UNDO)。 | 应用程序无法处理非法输入、运算溢出等错误,由DBMS系统实现故障恢复; 非法输入是由约束机制检查并恢复的 |
2 | 系统故障 | 指硬件故障、软件(如DBMS、OS或应用程序)漏洞的影响,导致丢失了内存中的信息,影响正在执行的事务,但未破坏存储在外存上的信息。又称故障-停止假设(fail-stop assumption) 系统故障中止了事务执行过程,破坏了事务的原子性,由于缓冲区中的内容可能部分己写入数据库,系统重启后数据库可能处于不一致状态。 | |
3 | 介质故障 | 指数据库的存储介质发生故障,如磁盘损坏、瞬间强磁场干扰等。 直接破坏了数据库,会影响到所有正在读取这部分数据的事务。 |