为什么数据库管理系统(DBMS)需要恢复?

2025年3月17日 | 阅读 3 分钟

简单来说,计算机的操作系统负责确保在将事务发送到数据库管理系统(DBMS)执行时,所有必需的操作都能被正确执行。它确保这些操作的结果被正确地记录在数据库中,并且不会干扰其他事务。

当事务 t 执行的某些操作无法提交到数据库,而事务 t 的其他操作又根据数据库管理系统的规则是不可能完成的时,就会出现这种情况。这本质上发生在某个活动在完成部分活动后,仍然未能完成所有活动的情况下。

Why Recovery is Needed in DBMS

故障类别

计算机数据库无法完成操作的无法执行,或系统遭受的任何其他形式的损坏,本质上都被认为是故障。事务被拒绝的基本原因可能源于以下任何故障类别。

  • 操作失败:当某个操作不再被接受或无法完成时,就会发生这种故障。
  • 计算机故障/崩溃:这种故障通常发生在事务执行期间,可能由软件、硬件或网络错误引起。本质上,硬件故障被归类为硬件损坏。
  • 系统故障:这种故障是由进程内发生的活动引起的,例如除以零或整数。这种类型的问题有时被称为事务故障,也可能源于概念性编程错误或不正确的数值选择。此外,某个人可能会在进程执行时停止它,这可能导致进程被拒绝。
  • 事务中止:当由于特定条件导致事务无法成功完成,从而导致其被取消时,就会出现这种情况。例如,如果一个事务试图从余额不足的银行账户转账,它将被中止以维护数据完整性。这种通常被称为“事务中止”的事件,对于保持数据库的一致性至关重要。在事务中包含处理此类异常的机制,对于防止数据不一致和确保事务的可靠性至关重要。
  • 并发控制强制执行:当多个进程处于不活动状态或存在序列化根本性违规时,具有并发控制技术的进程有权决定是终止该进程还是重新启动它。
  • 磁盘故障:当磁盘由于读/写头碰撞或其他导致磁盘丢失信息的问题而发生故障时,就会发生这种故障。这可能发生在进程正在读取或写入数据时。
  • 灾难:这个名字也叫物理问题。它通常指各种各样的问题,例如空调或电力故障、意外替换磁盘或录音,以及用户安装了不正确的磁带。
  • 网络故障:当客户端和数据库服务器之间的连接中断时,就会发生网络故障。设备故障、软件错误和自然灾害等许多因素都可能导致此问题。
  • 死锁:当多个事务互相等待它们所需的资源锁被释放以便继续执行时,就会发生死锁。这可能导致事务陷入停滞,在这种情况下,系统将不得不终止其中任何一个事务来打破死锁。
  • 软件缺陷:当操作正在执行时,DBMS软件中的错误可能导致意外行为或问题。如果未能妥善处理,这可能导致数据丢失或损坏。
  • 电源中断:如果系统的恢复过程未能有效管理正在进行的事务,电源故障可能导致系统突然关闭,并造成信息丢失或损坏。
  • 数据损坏:许多因素,包括网络问题、软件缺陷和硬件故障,都可能导致信息损坏。未经识别和修复的损坏可能导致数据不一致和数据库完整性受损。

由于恢复保证在发生故障或错误时可以可靠地、精确地恢复信息,因此它是数据库管理系统(DBMS)的关键组成部分。