事务故障 什么是事务故障 某个事务在运行过程中由于种种原因未运 行至正常终止点就天折了 事务故障的常见原因 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁
一、事务故障 • 什么是事务故障 – 某个事务在运行过程中由于种种原因未运 行至正常终止点就夭折了 • 事务故障的常见原因 – 输入数据有误 – 运算溢出 – 违反了某些完整性限制 – 某些应用程序出错 – 并行事务发生死锁 –
事务故障的恢复 发生事务故障时,夭折的事务可能已把 对数据库的部分修改写回磁盘 事务故障的恢复:撤消事务(UNDO) 强行回滚( ROLLBACK)该事务 ·清除该事务对数据库的所有修改,使得 这个事务象根本没有启动过一样
事务故障的恢复 • 发生事务故障时,夭折的事务可能已把 对数据库的部分修改写回磁盘 • 事务故障的恢复:撤消事务(UNDO) • 强行回滚(ROLLBACK)该事务 • 清除该事务对数据库的所有修改,使得 这个事务象根本没有启动过一样
系统故障 什么是系统故障 整个系统的正常运行突然被破坏 所有正在运行的事务都非正常终止 内存中数据库缓冲区的信息全部丢失 外部存储设备上的数据未受影响
二、系统故障 • 什么是系统故障 – 整个系统的正常运行突然被破坏 – 所有正在运行的事务都非正常终止 – 内存中数据库缓冲区的信息全部丢失 – 外部存储设备上的数据未受影响
系统故障的常见原因 操作系统或DBMs代码错误 操作员操作失误 ·特定类型的硬件错误(如cPU故障) 突然停电
系统故障的常见原因 • 操作系统或DBMS代码错误 • 操作员操作失误 • 特定类型的硬件错误(如CPU故障) • 突然停电
系统故障的恢复 清除尚未完成的事务对数据库的所有修改 系统重新启动时,恢复程序要强行撤消 (UNDO)所有未完成事务 将缓冲区中已完成事务提交的结果写入数据库 系统重新启动时,恢复程序需要重做 (REDo)所有已提交的事务
系统故障的恢复 • 清除尚未完成的事务对数据库的所有修改 – 系统重新启动时,恢复程序要强行撤消 (UNDO)所有未完成事务 • 将缓冲区中已完成事务提交的结果写入数据库 – 系统重新启动时,恢复程序需要重做 (REDO)所有已提交的事务