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

数据库常见故障类型

数据库常见故障类型

数据库系统运行过程中可能发生的故障主要分为以下三类,其破坏性由小到大:

故障类型

别名

根本原因

影响范围

典型例子

1. 事务故障

逻辑故障

事务内部的程序逻辑错误或输入异常。

单个或少量事务

- 输入数据不合法(如除零错误)。
- 应用程序错误(如转账时余额为负)。
- 死锁(被系统强制终止)。

2. 系统故障

软故障(Soft Crash)

硬件(如突然断电)、操作系统或DBMS软件错误,导致系统停止运行

所有正在运行的事务,​内存数据丢失,但磁盘数据完好

- 操作系统崩溃。
- 数据库服务器进程意外被杀。
- 突然断电(需有备用电源支持内存写入磁盘的时间)。

3. 介质故障

硬故障(Hard Crash)

存储数据库的物理设备发生损坏。

破坏磁盘上的数据,影响范围最大。

- 磁盘控制器(Disk Controller)故障。
- 磁头损坏(Head Crash)。
- 磁盘块因老化而永久性损坏。


各类故障的恢复策略

各类故障的恢复策略

针对不同的故障类型,数据库系统采用了相应的恢复机制:

1. 事务故障的恢复
  •  

    恢复方式​: ​撤销(UNDO)​

  •  

    实现机制​: 系统反向扫描日志文件,找到该事务的所有更新操作,并对这些操作执行逆操作,将数据库恢复到该事务执行之前的状态,就像这个事务从未发生过一样。

  •  

    目标​: 消除失败事务对数据库的所有影响。

2. 系统故障的恢复

系统重启后,恢复子系统需要处理两种不确定状态的事务:

  •  

    未完成的事务​: 事务未提交,但其部分修改可能已写入磁盘。

  •  

    已提交但未落盘的事务​: 事务已提交,但其数据修改可能还在内存缓冲区,未来得及写入磁盘。

  •  

    恢复方式​: ​撤销(UNDO) + 重做(REDO)​

  •  

    实现机制​:

    1. 1.

      撤销(UNDO)​​: 撤销所有未完成事务的操作,确保原子性。

    2. 2.

      重做(REDO)​​: 重做所有已提交但未落盘事务的操作,确保持久性。

  •  

    关键技术​: 通过检查点(Checkpoint)​​ 技术来确定哪些事务需要UNDO,哪些需要REDO,这正是我们上一个对话讨论的核心内容。

3. 介质故障的恢复
  •  

    恢复方式​: ​重装备份 + 重做日志

  •  

    实现机制​:

    1. 1.

      装入最新的数据库备份​(冷备或热备),将数据库恢复到备份时的状态。

    2. 2.

      装入备份点之后的所有日志文件副本

    3. 3.

      重做(REDO)备份之后所有已提交事务的操作,将数据库恢复到故障发生前的状态。

  •  

    特点​: 恢复速度最慢,对可用性影响最大。因此,​制定定期备份策略和日志归档策略至关重要

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

相关文章:

  • 知识产品和标准化
  • 在 Qt 中加载 .qm 翻译文件
  • 跳跃游戏(二):DFS 求解最少跳跃次数与最优路径
  • 专项智能练习(Word)
  • JavaSE:抽象类和接口
  • 计算机视觉(五):blur
  • 原子操作(Atomic Operation) 是指不可被中断的操作——要么完整执行,要么完全不执行
  • 贵州在假期及夏天结束后保持旅游活力的策略分析
  • AI如何重塑电力工程设计?揭秘良策金宝AI的六大“超能力”
  • SQLSERVER关键字:N
  • VBA数据库解决方案第二十二讲:根据工作表数据生成数据库中数据表
  • 算法练习——189.轮转数组
  • 【逆序对 博弈】P10737 [SEERC 2020] Reverse Game|普及+
  • 【开题答辩全过程】以 基于JSP的养生网站设计与实现为例,包含答辩的问题和答案
  • MySQL 中 InnoDB 引擎的事务隔离级别与“可重复读”隔离级别下的 SQL 编写规范
  • Linux 进程间通信(IPC)
  • 大型语言模型微调 内容预告(69)
  • 【Docker】2025版Ubuntu 22.04 安装 Docker Docker Compose 指南
  • 电力工程师的AI时代已来,这6大功能彻底颠覆传统工作模式
  • 系统性学习数据结构-第二讲-顺序表与链表
  • 金融数据安全
  • 基于单片机汽车防盗系统/汽车安全防丢系统
  • 动态代理设计模式
  • 多模态大语言模型部署
  • Java泛型通配符详解:搞懂?/extends/super用法,避开集合操作踩坑点
  • 二、感知机
  • 高防IP防护效果评估全攻略:从指标解读到实战测试
  • langgraph / openmanus / suna 对比
  • 数据安全不用愁,群晖NAS让你存得放心、用得安心
  • 深度学习环境搭建运行(二) Ubuntu22.04安装基于CUDA11.8的ONNXRuntime-gpu1.18.1详细步骤(新手入门)