数据库事务执行过程中,系统既要能在事务回滚时撤销已经做过的修改,也要能在系统崩溃恢复时把已提交事务的修改重新做出来。关于 Undo 日志和 Redo 日志,下列说法较合理的是()。
Undo 日志通常用于记录修改前的旧值或可撤销信息,使事务回滚或异常中止时能把数据恢复到修改前状态;Redo 日志通常用于记录已提交事务的修改信息,在系统崩溃后把尚未完全写入数据文件的提交结果重做出来。不同数据库实现细节不完全相同,但考试层面常抓“撤销”和“重做”这两个方向。
选项分析
正确。Undo 偏撤销,Redo 偏重做,是事务恢复的核心区分。
错误。域名解析和邮件收发分别属于网络应用层协议场景,不是数据库恢复日志。
错误。日志和备份解决的问题不同,日志不能替代完整备份策略。
错误。Redo 不是删除已提交数据,而是用于重做已提交修改。
本题为什么容易错
这题容易把 Undo、Redo 都笼统叫“日志”,然后失去方向感。数据库日志不是为了写流水账,而是为了在异常时保证事务的一致性和持久性。
简短答案
Undo 日志和 Redo 日志在事务恢复中怎么区分,正确答案是 A(Undo 更强调回滚未提交或需要撤销的修改,Redo 更强调恢复已提交事务的修改)。Undo 日志通常用于记录修改前的旧值或可撤销信息,使事务回滚或异常中止时能把数据恢复到修改前状态;Redo 日志通常用于记录已提交事务的修改信息,在系统崩溃后把尚未完全写入数据文件的提交结果重做出来。不同数据库实现细节不完全相同,但考试层面常抓“撤销”和“重做”这两个方向。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| Undo 更强调回滚未提交或需要撤销的修改,Redo 更强调恢复已提交事务的修改 | 本题正确答案 | 正确。Undo 偏撤销,Redo 偏重做,是事务恢复的核心区分。 | 看到题干核心场景时优先联想到它 |
| Undo 日志负责域名解析,Redo 日志负责邮件收发 | 本题干扰项 | 错误。域名解析和邮件收发分别属于网络应用层协议场景,不是数据库恢复日志。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 只要有日志,数据库就永远不需要备份 | 本题干扰项 | 错误。日志和备份解决的问题不同,日志不能替代完整备份策略。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| Redo 日志只用于删除所有已经提交的数据 | 本题干扰项 | 错误。Redo 不是删除已提交数据,而是用于重做已提交修改。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- Undo 日志负责域名解析,Redo 日志负责邮件收发:错误。域名解析和邮件收发分别属于网络应用层协议场景,不是数据库恢复日志。
- 只要有日志,数据库就永远不需要备份:错误。日志和备份解决的问题不同,日志不能替代完整备份策略。
- Redo 日志只用于删除所有已经提交的数据:错误。Redo 不是删除已提交数据,而是用于重做已提交修改。
知识点详解
Undo 日志是数据库系统工程师考试中需要结合场景理解的考点。围绕“Undo 日志和 Redo 日志在事务恢复中怎么区分”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“数据库事务执行过程中,系统既要能在事务回滚时撤销已经做过的修改,也要能在系统崩溃恢复时把已提交事务的修改重新做出来。关于 Undo 日志和 Redo 日志,下列说法较合理的是()”,它指向的核心答案是 A(Undo 更强调回滚未提交或需要撤销的修改,Redo 更强调恢复已提交事务的修改)。
备考速记
备考速记:题干如果强调“崩溃恢复”中的关键目标,就先联想到 Undo 日志;如果选项里出现 Undo 日志负责域名解析,Redo 日志负责邮件收发、只要有日志,数据库就永远不需要备份、Redo 日志只用于删除所有已经提交的数据,不要只看名称熟悉,要判断它们是否真正对应题干场景。
Undo 日志 在崩溃恢复场景中的作用
Undo 日志在本题中的核心价值,是解决“数据库事务执行过程中,系统既要能在事务回滚时撤销已经做过的修改,也要能在系统崩溃恢复时把已提交事务的修改重新做出来。关于 Undo 日志和 Redo 日志,下列说法较合理的是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出崩溃恢复场景,判断应该选择哪个概念、工具、协议或管理过程。
- 考查Undo 日志的作用,要求从四个相近选项中找出最符合题干目标的一项。
- 把Undo 日志和Undo 日志负责域名解析,Redo 日志负责邮件收发、只要有日志,数据库就永远不需要备份、Redo 日志只用于删除所有已经提交的数据放在一起考,重点看适用场景是否一致。
- 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
Undo 日志 在数据库系统工程师软考中的考法
软考选择题通常不会只考概念定义,还会把Undo 日志放到崩溃恢复场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
老师讲事务恢复时,会把它讲成两句话:不该留下的,要撤掉;该留下但还没落稳的,要补上。Undo 负责前半句,Redo 负责后半句。题干两个目标都写了,A 正好分别对应。
考点定位
Undo/Redo 题先看动作:撤销还是重做。回滚、未提交、恢复旧值,往 Undo 想;崩溃后保证已提交事务不丢,往 Redo 想。
易错提醒
- 把 Undo 理解成一定只在手工撤销时使用,忽略事务回滚和异常中止。
- 认为 Redo 是重复执行所有事务,包括未提交事务。
- 有日志就不做备份,这是很危险的理解。
备考提示
- 记法:Undo 看旧值,Redo 看新结果;Undo 撤回去,Redo 补回来。
- 数据库恢复题可以和 ACID、检查点、日志先写原则一起复习。
- 看到崩溃恢复,不要只喊备份,先判断题干问的是日志恢复还是介质恢复。
你可能还想了解
- Undo 日志和 Redo 日志在事务恢复中怎么区分?
- Undo 日志是什么?
- Undo 日志在数据库系统工程师考试中怎么考?
- 数据库系统工程师Undo 日志题怎么理解?
- Undo日志和Redo日志区别怎么考?
- 数据库事务恢复日志怎么考?
本文小结
本题核心考点是Undo 日志在崩溃恢复场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(Undo 更强调回滚未提交或需要撤销的修改,Redo 更强调恢复已提交事务的修改)。