数据库系统工程师 · 高频练习

Undo 日志和 Redo 日志在事务恢复中怎么区分?

中级 单选题 第 613 题 中等 数据库系统工程师Undo 日志Redo 日志事务恢复崩溃恢复
题目

数据库事务执行过程中,系统既要能在事务回滚时撤销已经做过的修改,也要能在系统崩溃恢复时把已提交事务的修改重新做出来。关于 Undo 日志和 Redo 日志,下列说法较合理的是()。

A Undo 更强调回滚未提交或需要撤销的修改,Redo 更强调恢复已提交事务的修改
B Undo 日志负责域名解析,Redo 日志负责邮件收发
C 只要有日志,数据库就永远不需要备份
D Redo 日志只用于删除所有已经提交的数据
题目类型:原创高频考点题 用途:用于帮助理解数据库系统工程师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

Undo 日志通常用于记录修改前的旧值或可撤销信息,使事务回滚或异常中止时能把数据恢复到修改前状态;Redo 日志通常用于记录已提交事务的修改信息,在系统崩溃后把尚未完全写入数据文件的提交结果重做出来。不同数据库实现细节不完全相同,但考试层面常抓“撤销”和“重做”这两个方向。

选项分析

A

正确。Undo 偏撤销,Redo 偏重做,是事务恢复的核心区分。

B

错误。域名解析和邮件收发分别属于网络应用层协议场景,不是数据库恢复日志。

C

错误。日志和备份解决的问题不同,日志不能替代完整备份策略。

D

错误。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 更强调恢复已提交事务的修改)。