分享

数据库恢复

 求是1025 2023-04-01 发布于山东

在数据库管理系统(DBMS)运行过程中,由于硬件、软件等原因引起的故障是无法完全避免的。故障发生时,DBMS中还存在一些正在运行的事务,还可能有部分已经提交的事务还未写入磁盘。因此故障发生之后,DBMS的状态是错误的(不一致)。数据库恢复的目标,就是将DBMS回退到一个正确的(一致)状态。所谓数据库处于一致性状态,指数据库只包含所有正确事务的提交结果。对于DBMS而言,通常我们说正确的状态就是一致性状态,二者是等价的。

数据库故障多种多样,有硬件因素,也有软件因素,甚至还有人为因素。一般我们可将数据库系统中可能发生的故障分为以下几类:①事务内部的故障。这可能是依据事先定义的逻辑,事务主动回滚;也可能是不可预期的故障,比如代码中存在错误,运行时死锁等。对于发生故障的事务,必须撤销它们对数据库所做的任何修改。②系统故障。指数据库系统异常终止,这可能由于操作系统故障,系统断电,硬件错误等造成。③介质故障。指外存故障,如磁盘损坏。这将破坏数据库中存放的部分数据,并影响正在运行的事务。④计算机病毒。病毒同样可能破坏DBMS系统,使其异常终止,甚至破坏磁盘中的数据。

数据库恢复的基本原理是冗余:当故障发生时,采用冗余的数据副本来重建数据库。具体来讲,数据库恢复的技术包含3类方法:①数据转储。数据库管理员定期或不定期地将整个数据库复制到后备的存储系统中,得到后备副本。当故障发生时,数据库管理员将后备副本重新装入,使得数据库恢复到转储时的状态。之后,还需要运行自转储之后发生的所有已提交的事务。使得DBMS恢复到一致的状态。②日志文件。日志文件记录事务对数据库的操作,记录内容包括每个事务的开始、结束以及每个更新操作。日志文件是数据库恢复必不可少的组成。DBMS应遵循先写日志文件,后写数据库的原则。这样,所有已经提交的事务都会被记录到日志文件中。在数据库恢复过程中,将依据日志文件内容,重做所有已经提交的事务,保证它们对数据库的更改不会丢失。这也保证了事务的持久性得以实现。③检查点。检查点方法是为了避免扫描整个日志文件,提高系统恢复的效率。DBMS将周期性建立检查点,并保存数据库状态。执行数据库恢复时,在检查点之前提交的事务需要重写,也不需要扫描检查点之前的日志。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多