恢复的实现技术

文章讲述了数据库恢复机制的关键,包括数据转储(静态与动态)、日志文件的登记和格式,以及它们在事务故障和系统故障修复中的应用。动态转储允许并发事务,但需配合日志文件确保数据正确。日志文件记录事务更新,遵循先登记后更新的原则,确保可恢复性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

恢复的实现技术

恢复机制涉及的关键问题是如何建立冗余数据,如何利用这些冗余数据恢复数据库

建立数据冗余的方法有数据转储(backup)和日志文件(logging)

数据转储

数据转储是指数据库管理员定期将整个数据库复制到磁盘或者磁带或其他介质上存储下来这些备用文本称为后备副本或后援副本(backup)
说明:后被副本只将数据库恢复到转储前的状态,要想恢复到故障发生前的状态,必须重新运行转储以来的所有更新。

转储方法

(1)静态存储和动态存储
1 静态储存 在系统中无运行任何事务的转储操作,即期间不允许对数据库任何存取,修改操作。
优点:实现简单
缺点:降低了系统可用性
2 动态转储 转储操作与事务并发运行,转储期间允许对数据库进行存取和修改。
优点:不用等待正在进行的事务结束,不会影响新事务运行。
缺点:不能保证副本中数据正确有效。

说明:利用动态转储生成的副本进行故障修复,需要把动态转储期间的各事务对数据库的修改记录下来,建立日志文件,后备副本加上日志文件能把数据库恢复到某一时刻正确状态。
(1)海量转储和增量转储
海量转储:每次转储整个数据库
增量转储:只转储上次转储后更新的数据。
两者比较:
从恢复角度看,海量转储往往比增量方便。
如果数据库很大,增量转储更有效。

登记日志文件

  1. 日志文件的格式和内容:
    日志文件是用来记录事务对数据库数据的更新操作的文件
    (1)日志文件的格式
    以记录为单位的日志文件和以数据块为单位的日志文件
    以记录为单位的日志文件需要登记的内容:
    各个事务开始的标记(BEGIN)
    各个事务结束的标记(COMMIT ROLLBACK)
    各个事务所有的更新操作
    以上均为日志文件中的一个日志记录(log record)
    日志记录的内容:
    事务标识(表明那个事务)
    操作类型(插入,删除,修改)
    操作对象(记录内部标识)
    更新前数据的旧值(插入前是空值)
    更新后数据的新值(删除后是空值)

以数据块为单位的日志文件
事务标识,被更新的数据块

  1. 文件日志的作用
    用于事务故障和系统故障的修复,配合后备副本对介质故障修复。具体为
    (1)事务故障,系统故障必须使用日志文件
    (2)在动态转储的方法中必须有日志文件,后背副本和日志文件结合起来才能有效修复数据库。
    (3)在静态转储过程中也能生成日志文件。利用日志文件,把已完成的事务做重做操作,把故障时尚未完成的事务进行撤销处理。

  2. 登记日志文件
    为保证数据库是可恢复的,登记日志文件必须遵循一下两个原则。
    (1)登记的次序必须严格按照并发操作执行的顺序。
    (2)必须先登记日志,再更新数据库。
    写数据库和写日志文件是两种不同的操作,在这两个操作之间可能发生故障,先写日志,但没有修改数据库,按日志文件恢复时只是多执行几次不必要的UNDO操作,并不会影响数据库的正确性。

以上内容基于圣才教育数据库系统概论ppt 修改整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红豆怪怪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值