18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 系统故障的恢复(数据库)

系统故障的恢复(数据库)

时间:2022-11-30 16:30:01 | 来源:信息时代

时间:2022-11-30 16:30:01 来源:信息时代

    系统故障的恢复 : 针对系统故障进行恢复的机制和过程。系统故障(system failure)是指由于硬件故障(如CPU故障、停电等)或软件的错误(如操作系统崩溃、DBMS代码错误等)造成DBMS崩溃,内存以及缓存中的数据全部丢失,但是,磁盘上的数据库并没有遭到破坏。
有两种原因可能会造成数据库的不一致。一是未完成的事务对数据库的更新可能已经写入数据库。二是,由于性能方面的考虑,数据库设置有缓冲区,已经提交的事务对数据库的更新可能还留在缓冲区没有来得及写入数据库。这时,如果不重新执行已经完成的事务,就违背了事务的永久性要求。
这时系统需要重新启动,然后才能开始恢复。对于未完成的事务,恢复过程类似于事务级故障的恢复。对于已经完成但是还没有来得及提交的事务,有两种解决的办法。一是规定在日志写入事务结束标志的时候,要通知缓冲区管理子系统,强制将该事务修改的全部数据块写回到数据库中去(缓冲区管理的对象是数据块),成功后才开始在日志中写入事务结束标志。这种办法比较简单,只存在没有完成的事务,不存在没有来得及提交的完成事务,因此,只要用UNDO操作就可以了。但是会影响到缓冲区的效率。另外,会增加缓冲区管理子系统和恢复子系统之间的通信量。
另一种办法是使用REDO操作。所谓REDO操作是指标识出全部的已经完成但是还没有来得及提交的事务,然后重新执行这些事务。为了做到这一点,日志的记录项中要增加“更新后的数据新值”记录项(称为后影像after image,AI)。或者用一个单独的日志记录后影像,称为AI日志。REDO操作的过程如下: 正向扫描AI日志文件,找出在故障发生以前已经提交的事务(这些事务既有开始标识也有结束标识),然后重新执行日志文件中记载的操作。即将日志文件中的后影像写入数据库。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭