📜  为什么在 DBMS 中需要恢复

📅  最后修改于: 2021-09-09 10:29:57             🧑  作者: Mango

基本上,每当事务提交给 DBMS 执行时,操作系统负责确保或确认事务中需要执行的所有操作都已成功完成,并且它们的效果要么记录在数据库中或者事务不影响数据库或任何其他事务。

DBMS 不得允许将事务 T 的某些操作应用于数据库,而 T 的其他操作则不允许。如果事务在执行其某些操作之后但在执行所有操作之前失败,则基本上可能会发生这种情况。

故障类型 –
基本上有以下类型的故障可能会发生并导致交易失败,例如:

  1. 交易失败
  2. 系统错误
  3. 介质故障等。

让我们尝试了解事务期间可能发生的不同类型的故障。

  1. 系统崩溃——
    发生硬件、软件或网络错误属于此类,此类故障主要发生在交易执行期间。硬件故障基本上被认为是硬件故障。

  2. 系统错误 –
    事务期间执行的某些操作是发生此类错误的原因,例如整数或除以零。这种类型的故障也称为事务,也可能由于错误的参数值或由于逻辑编程错误而发生。除此之外,用户还可能在执行过程中中断执行,从而导致交易失败。
  3. 本地错误 –
    这基本上发生在我们进行交易时,但可能会发生某些可能导致交易取消的情况。这种类型的错误基本上属于本地错误。一个简单的例子是可能找不到交易数据。当我们想从余额不足的账户中扣款导致我们的请求或交易被取消时。这个异常应该在事务本身中编程,这样它就不会被视为失败。
  4. 并发控制执行 –
    并发控制方法可能决定中止事务,重新开始,因为它基本上违反了可串行化,或者我们可以说几个进程处于死锁。
  5. 磁盘故障 –
    这种类型的故障主要发生在某些磁盘由于读写故障或磁盘读写磁头崩溃而丢失数据时。这可能发生在事务的读/写操作期间。
  6. 卡斯特罗——
    这些也称为物理问题,它基本上是指无穷无尽的问题,包括电源故障或空调故障、火灾、盗窃破坏、错误地覆盖磁盘或磁带以及运算符安装错误的磁带。