📅  最后修改于: 2020-12-12 07:42:40             🧑  作者: Mango
基于日志的恢复
- 日志是一系列记录。每个事务的日志都保存在某个稳定的存储中,以便在发生任何故障时都可以从那里恢复它。
- 如果对数据库执行了任何操作,则它将记录在日志中。
- 但是,应在将实际事务应用于数据库之前完成日志存储过程。
假设有一笔交易可以修改一个学生的城市。将为此事务写入以下日志。
- 启动事务时,它将写入“开始”日志。
- 当交易将城市从“诺伊达”修改为“班加罗尔”时,会将另一个日志写入文件。
- 事务完成后,它将写入另一个日志以指示事务结束。
有两种修改数据库的方法:
1.延迟数据库修改:
- 如果事务在提交之前不修改数据库,则发生延迟修改技术。
- 通过这种方法,将创建所有日志并将其存储在稳定存储器中,并在提交事务时更新数据库。
2.立即修改数据库:
- 如果在事务仍处于活动状态时发生数据库修改,则会发生立即修改技术。
- 在这种技术中,每次操作后都会立即修改数据库。它遵循实际的数据库修改。
使用日志记录进行恢复
当系统崩溃时,系统将查阅日志以查找哪些事务需要撤消,哪些事务需要重做。
- 如果日志包含记录和或,则需要重做事务Ti。
- 如果日志包含record n ,Start>但不包含记录或,则需要撤消事务Ti。