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