5.03 Execution and recovery of update transaction 更新事物的执行和恢复
1 5.03 Execution and recovery of update transaction 更新事物的执行和恢复
更新事务执行时 应该遵守2条规则: 1.Commit rule提交规则 后像必须在提交前写入非易失存储器中。 即写入数据库或运行记录中。 原因:ACID准则:提交事务对数据库的影 响应该是持久性
2 更新事务执行时 应该遵守2条规则: 1.Commit rule 提交规则 后像必须在提交前写入非易失存储器中。 即写入数据库或运行记录中。 原因:ACID 准则:提交事务对数据库的影 响应该是持久性
·注意:后像写入运行记录即可提交事务。 只要后像已写入运行记录,后像尚未写入或 未完全写入数据库也可提交事务。待提交后 继续完成写入数据库操作。 此期间如故障,可以用后像redo,若提交后, 写入DB前其他事务访问这些数据,更新数据 仍然在缓存中,自然可访问已经更新的数据
3 ⚫ 注意:后像写入运行记录 即可提交事务。 ⚫ 只要后像已写入运行记录,后像尚未写入或 未完全写入数据库也可提交事务。待提交后 继续完成写入数据库操作。 ⚫ 此期间如故障,可以用后像redo,若提交后, 写入DB前其他事务访问这些数据,更新数据 仍然在缓存中,自然可访问已经更新的数据
2.Log ahead rule 先记后写规则。 若后像在事务提交前写入数据库,则必须先 把前像记入运行记录。 原因:事务提交前,还有可能执行失败卷回, 这时要消除事务对数据库的一切影响。 ● 只要事务未提交,改动数据库前就必须先把 前像写入运行记录。以便执行向后恢复 后像写入数据库时间,有3种更新事务执行方 案
4 2.Log ahead rule 先记后写规则。 ⚫ 若后像在事务提交前写入数据库,则必须先 把前像记入运行记录。 原因:事务提交前,还有可能执行失败卷回, 这时要消除事务对数据库的一切影响。 ⚫ 只要事务未提交,改动数据库前就必须先把 前像写入运行记录。以便执行向后恢复 。 ⚫ 后像写入数据库时间,有3种更新事务执行方 案
1)后像在事务提交前完全写入数据库。 执行的步骤: (1)TID->ATL /事务标识符->活动事务表。 (2) BI->Log /前像->Log(运行记录) (3) Al->DB /提交前,后像完全写入DB,满 足提交规则:B1已入L0G/ (4) TID->CTL //事务标识符->提交事务表 (5)从ATL删除TID //从活动事务表删除该事 务标识符 特点:前像后像都要记。后像必须记;因提交之 前,后像写入数据库,前像也须记
5 1)后像在事务提交前完全写入数据库。 执行的步骤: (1) TID->ATL //事务标识符->活动事务表。 (2) BI->Log //前像->Log(运行记录) (3) AI->DB //提交前,后像完全写入DB,满 足提交规则:BI已入LOG // (4) TID->CTL //事务标识符->提交事务表 (5)从ATL删除TID //从活动事务表删除该事 务标识符 特点:前像后像都要记。后像必须记;因提交之 前,后像写入数据库,前像也须记