当前位置: 首页 > ops >正文

软考中级数据库系统工程师学习专篇(67、数据库恢复)

67、数据库恢复

数据库故障恢复中基于检查点的事务分类与处理策略

在数据库系统发生故障后的恢复过程中,​检查点(Checkpoint)​​ 技术是关键机制,它能有效缩小恢复范围,减少需要扫描的日志量,从而加速恢复进程

。其核心逻辑是:系统只需从最后一个检查点开始恢复,而不必处理整个日志文件。具体解题思路如下:

  1. 1.

    定位最近检查点​:首先,在日志文件中找到最近的一个检查点记录。检查点是数据库系统定期写入的一个特殊记录,它标志着在该时间点之前,所有已提交事务对数据库的修改都已经从内存缓冲区刷新到了物理磁盘上,数据库处于一个已知的一致状态

  2. 2.

    识别检查点时刻的活动事务​:查看该检查点记录中包含的信息(通常包含一个活动事务列表),或向前扫描日志,找出所有在检查点记录之前有 START标志但尚未有 COMMITROLLBACK结束标志的事务。这些事务在检查点时刻是活动事务(Active Transactions)​

  3. 3.

    对事务进行分类处理​:根据事务的完成时间点相对于检查点的位置,将其分为三类,并采取不同的恢复策略:

事务类别

特征

恢复动作

原因

① 检查点前已提交的事务

在检查点记录之前就已经有 COMMIT记录的事务。

无需任何操作

这类事务的修改在检查点时已被保证写入磁盘,数据已持久化,因此无需恢复操作。

② 检查点后提交的事务

在检查点记录之后才出现 COMMIT记录的事务。

REDO (重做)​

这些事务的提交发生在检查点之后,其数据修改可能仍在内存缓冲区而未写入磁盘(系统故障导致内存丢失)。因此需要根据日志重做所有操作,确保修改不丢失。

③ 始终未提交的事务

在检查点之前开始,但在检查点之后、故障点之前始终没有COMMIT记录的事务。

UNDO (撤销)​

这些活动事务从未真正完成,为防止它们对数据库的部分修改导致数据不一致,必须根据日志撤销其所有操作,回滚到事务开始前的状态。

总而言之,检查点机制通过确立一个可靠的恢复起点,将复杂的事务恢复问题转化为对三类事务的针对性操作:​忽略已完成的、重做已提交但未落盘的、撤销从未完成的。这种分类处理方法极大地提高了数据库故障恢复的效率和可靠性

http://www.xdnf.cn/news/19347.html

相关文章:

  • Linux网络socket套接字(中)
  • AI人工智能大模型应用如何落地
  • DriveDreamer-2
  • C++ 模板全览:从“非特化”到“全特化 / 偏特化”的完整原理与区别
  • CUDA与图形API的深度互操作:解锁GPU硬件接口的真正潜力
  • Linux 系统都有哪些
  • Playwright Python 教程:实战篇
  • docker中的命令(四)
  • Coze源码分析-工作空间-项目开发-前端源码
  • 如何重置SVN被保存的用户名和密码
  • 【pve】
  • 轻量化注意力+脉冲机制,Transformer在低功耗AI中再度进化
  • 吴恩达机器学习作业十 PCA主成分分析
  • 基于单片机智能大棚/温室大棚/智慧农业/智能栽培种植系统/温湿度控制
  • LeetCode 37.解数独
  • k8s三阶段项目
  • 狂神说--Nginx--通俗易懂
  • 线程池八股文
  • 从零开始写个deer-flow-mvp-第一天
  • 拆分TypeScript项目的学习收获:处理编译缓存和包缓存,引用本地项目,使用相对路径
  • 粗糙表面接触模型MATLAB代码
  • 多租户配额与预算:限额、配额周期与突发桶的结算模型(Final)
  • 【机械故障】使用扭矩计算物体重量
  • web墨卡托的纬度范围为什么是85°S~85°N?
  • 为何重定义库函数会减少flash体积(从prinf讲解)
  • 为什么计算机使用补码存储整数:补码的本质
  • 【秋招笔试】2025.08.29阿里云秋招笔试题
  • 【Linux】动静态库的制作与原理
  • 第三十二天:数组
  • 刷算法题-数组-02