数据库恢复技术

合集下载

数据库恢复技术

数据库恢复技术

数据库恢复技术---恢复内容开始---数据库恢复技术事务:是⽤户定义的⼀个数据库操作序列,这些操作要么全做,要么全不做,是⼀个不可分割的⼯作单位。

事物的 ACID 特性:原⼦性、⼀致性、隔离性、持续性。

恢复的实现技术:建⽴冗余数据 -> 利⽤冗余数据实施数据库恢复。

建⽴冗余数据常⽤技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记⽇志⽂件。

ACID特性1. 原⼦性(Atomicity)⼀个原⼦事务要么完整执⾏,要么⼲脆不执⾏。

这意味着,⼯作单元中的每项任务都必须正确执⾏。

如果有任⼀任务执⾏失败,则整个⼯作单元或事务就会被终⽌。

即此前对数据所作的任何修改都将被撤销。

如果所有任务都被成功执⾏,事务就会被提交,即对数据所作的修改将会是永久性的。

2. ⼀致性(Consistency)⼀致性代表了底层数据存储的完整性。

它必须由事务系统和应⽤开发⼈员共同来保证。

事务系统通过保证事务的原⼦性,隔离性和持久性来满⾜这⼀要求; 应⽤开发⼈员则需要保证数据库有适当的约束(主键,引⽤完整性等),并且⼯作单元中所实现的业务逻辑不会导致数据的不⼀致(即,数据预期所表达的现实业务情况不相⼀致)。

例如,在⼀次转账过程中,从某⼀账户中扣除的⾦额必须与另⼀账户中存⼊的⾦额相等。

3. 隔离性(Isolation)隔离性意味着事务必须在不⼲扰其他进程或事务的前提下独⽴执⾏。

换⾔之,在事务或⼯作单元执⾏完毕之前,其所访问的数据不能受系统其他部分的影响。

当我们编写了⼀条 update 语句,提交到数据库的⼀刹那间,有可能别⼈也提交了⼀条 delete 语句到数据库中。

也许我们都是对同⼀条记录进⾏操作,可以想象,如果不稍加控制,就会出⼤⿇烦来。

我们必须保证数据库操作之间是“隔离”的(线程之间有时也要做到隔离),彼此之间没有任何⼲扰。

4. 持久性(Durability)持久性表⽰在某个事务的执⾏过程中,对数据所作的所有改动都必须在事务成功结束前保存⾄某种物理存储设备。

数据库系统的备份与恢复技术

数据库系统的备份与恢复技术

数据库系统的备份与恢复技术随着数字化时代的到来,数据已成为企业和个人最重要的资产之一。

对于企业而言,数据的安全和可靠性直接关系到企业长期的发展和竞争力。

而数据库系统的备份与恢复技术则是保障数据安全的重要手段之一。

一、备份技术备份是指将数据库中的数据和相关元数据以一定的方式复制到其他介质上,以备发生数据丢失、破坏或其他灾难性事件时进行恢复操作。

备份方式可以采用全备份、增量备份和差异备份等方式。

1.全备份全备份是指备份整个数据库,包括所有数据和元数据,并保存到备份集合中。

由于备份数据的全面性,全备份的执行时间相对较长,备份数据集也较大,在恢复时可以保证完整性和可用性。

但是,全备份的频率较低,备份数据量大,占用存储空间多。

2.增量备份增量备份是指只备份数据库中发生改变的部分,即增加、更新和删除的数据表和数据记录。

每次增量备份都只备份数据的新增和修改部分,减少了备份所需的时间和存储空间,但增量备份的恢复操作需要较长时间且复杂。

3.差异备份差异备份是指备份连续全备份后发生的数据变化部分。

相比于增量备份,差异备份能够减少备份和恢复所需时间,占用的存储空间也较少。

但是,差异备份需要记录每个差异备份的位置,增加了恢复操作的复杂度。

二、恢复技术恢复是指在数据发生丢失、破坏等情况下,通过备份集合中的数据对数据库进行还原。

恢复技术可以采用整体恢复和部分恢复等方式进行。

1.整体恢复整体恢复是指将所有备份集合中的数据进行还原,主要在数据库软件出现重要故障无法正常启动时进行。

整体恢复需要将数据库中所有的数据文件均进行恢复,即使只丢失了少量数据,也需要对整个数据库进行还原,因此整体恢复时间较长。

2.部分恢复部分恢复是指在局部数据丢失或破坏时,只恢复丢失或破坏的部分数据。

部分恢复可以采用基于时间点的恢复、块设备恢复和逻辑日志恢复等方式进行。

(1)基于时间点恢复基于时间点恢复是指在特定时间点进行备份,并将此时间点作为恢复点,通过恢复点来恢复数据库。

数据库容错与恢复技术-第1篇

数据库容错与恢复技术-第1篇

数据库监控与维护
1.监控数据库运行状态,及时发现故障和异常。 2.定期对数据库进行维护和优化,提高数据库性能。 3.建立完善的数据库运维体系,确保数据库稳定运行。 数据库监控与维护是保障数据一致性的重要保障措施之一。通 过监控数据库的运行状态,可以及时发现故障和异常,避免因 为数据库故障而导致的数据不一致问题。同时,定期对数据库 进行维护和优化,可以提高数据库的性能和稳定性,减少因为 数据库性能问题而导致的数据不一致问题。此外,还需要建立 完善的数据库运维体系,确保数据库的稳定运行和数据一致性 保障。
1.随着技术的不断发展,数据库容错技术也在不断进步和完善 ,包括备份技术的优化、高可用技术的提升和容错管理工具的 智能化等。 2.云计算、大数据和人工智能等新兴技术的应用也为数据库容 错技术的发展带来了新的机遇和挑战。 3.未来,数据库容错技术将更加注重自动化、智能化和可视化 等方面的发展,以提高容错效率和降低管理成本。
数据库容错技术简介
▪ 数据库高可用技术
1.数据库高可用技术是指通过特定的技术手段和方法,确保数据库系统能够持续、 稳定地提供服务的技术。 2.常见的高可用技术包括数据库集群、数据库复制和数据库分区等。这些技术可以 大大提高数据库的并发处理能力和容错能力。 3.在实施高可用技术时,需要考虑数据库的负载均衡、故障切换和数据一致性等问 题。
数据库容错与恢复技术
数据一致性保障措施
数据一致性保障措施
数据备份与恢复
1.定期备份数据库,确保数据可恢复。 2.采用可靠的恢复技术,确保数据完整性。 3.建立应急恢复计划,以应对突发事件。 随着数据量的不断增长,数据备份与恢复已成为保障数据一致 性的重要手段。为了确保数据的可靠性,需要定期备份数据库 ,以便在数据损坏或丢失时进行恢复。同时,还需要采用可靠 的恢复技术,确保恢复后的数据完整性和准确性。此外,为了 应对突发事件,还需要建立应急恢复计划,确保在短时间内恢 复数据,减少损失。

数据库常用的备份和恢复方法

数据库常用的备份和恢复方法

数据库常用的备份和恢复方法1. 定期全量备份:定期对数据库进行完整备份,可保证数据库的完整性和可恢复性。

2. 差异备份:在全量备份的基础上,只备份发生变化的数据部分,可以节省存储空间和备份时间。

3. 事务日志备份:备份数据库的事务日志,可以实现逐渐备份,精准的还原到某一时间点。

4. 复制备份:将数据库复制到其他设备或位置,以防主要数据库损坏或丢失。

5. 增量备份:只备份自上次备份以来发生的数据变化,可大幅减少备份时间和存储成本。

6. 数据库快照:生成数据库的快照,记录数据库在某个时间点的状态,用于快速恢复到该状态。

7. 物理备份:备份数据库的物理文件,包括数据文件、日志文件等,可快速恢复数据库的完整性。

8. 逻辑备份:备份数据库的逻辑结构,包括表、索引、视图等,方便跨平台导入导出。

9. 热备份:在数据库运行时进行备份,不停止数据库服务,可实现24/7的备份操作。

10. 冷备份:在数据库停止时备份,可以获得更稳定可靠的备份结果。

11. 数据库镜像:实时将数据库复制到另一个实例,确保备份数据的实时性和高可用性。

12. 数据库导出:将数据库中的数据导出为文本文件,以便迁移或重建数据库。

13. 数据库导入:从导出的文本文件中导入数据到数据库,用于恢复或迁移数据。

14. 增量同步备份:将增量数据同步到备份设备,以实现实时备份和恢复。

15. 压缩备份:对备份文件进行压缩,减小存储空间占用和备份速度。

16. 分布式备份:将备份数据分布保存在多个位置,提高数据的安全性和可靠性。

17. 数据库迁移:将数据库从一个平台迁移到另一个平台,需要备份和恢复数据。

18. 数据库克隆:创建数据库的副本,用于测试、开发或灾难恢复。

19. 自动备份计划:设定定时任务,自动执行备份操作,提高备份的可靠性和定期性。

20. 增量还原:在全量备份的基础上,只还原最近的增量备份,减少数据恢复的时间成本。

21. 数据库快速还原:通过快照或镜像技术,实现数据库的快速、即时恢复。

数据库备份与恢复技术手册

数据库备份与恢复技术手册

数据库备份与恢复技术手册数据库备份与恢复是数据库管理中至关重要的一部分,它涉及到数据的安全性和可靠性。

本技术手册旨在为数据库管理员提供数据库备份与恢复的详细步骤和技术要点,确保数据库能够在灾难事件发生后尽快恢复,并保护数据的完整性。

第一部分:备份1. 定期备份数据库备份应该成为日常操作的一部分。

建议将备份计划定期安排,以确保重要数据的安全。

可以根据业务需求和数据敏感性来决定备份频率,如每天、每周或每月。

2. 分级备份分级备份包括完全备份和增量备份。

完全备份将整个数据库备份到磁盘或磁带上,而增量备份只备份自上次备份以来发生的变化部分。

通过分级备份可以节省存储空间和备份时间。

3. 存储介质选择选择适合的存储介质对于数据库备份至关重要。

可选的存储介质包括本地磁盘、网络存储设备和云存储服务。

需要考虑存储容量、读写速度和数据安全性等因素。

4. 备份验证备份完成后,验证备份文件的完整性和可用性至关重要。

可以通过恢复一个样本数据库来确认备份文件是否可以成功恢复。

第二部分:恢复1. 选择恢复点当数据库出现故障或数据丢失时,需要选择一个合适的恢复点。

可以根据备份的时间戳或事务日志来确定最近的备份点。

2. 数据库还原数据库还原是将备份数据重新加载到数据库中的过程。

根据选择的恢复点,可以使用备份文件进行完全还原或增量还原。

还原过程需要保证数据库事务的一致性。

3. 日志恢复在数据库故障或崩溃后,可能存在未提交的事务或部分事务记录丢失的情况。

通过应用事务日志,可以将数据库恢复到最近的一致状态。

4. 测试恢复过程在实际灾难发生之前,测试恢复过程是非常重要的。

定期进行恢复测试,可以帮助发现备份和恢复过程中的潜在问题,并及时进行修复。

第三部分:最佳实践1. 多重备份为了数据安全和可靠性,建议实施多重备份策略。

除了常规的定期备份,可以考虑使用磁带库、远程备份和异地备份等方式。

2. 数据库容灾数据库容灾是一种通过在远程地点建立热备份数据库来保障系统可用性的方法。

数据库恢复技术有哪些

数据库恢复技术有哪些

数据库恢复技术有哪些数据库恢复技术有:1、数据转储,即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。

2、登记⽇志⽂件,⽇志⽂件是⽤来记录事务对数据库的更新操作的⽂件,设⽴⽇志⽂件可以进⾏事务故障恢复、系统故障恢复、协助后备副本本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

数据库恢复概述 数据库管理系统必须具有把数据库从某⼀错误状态恢复到某⼀已知的正确状态的功能,这就是数据库的恢复。

恢复⼦系统是数据库管理系统的⼀个重要组成部分,⽽且还相当庞⼤,常常占整个系统代码的百分之⼗以上。

数据库系统采⽤的恢复技术是否⾏之有效,不仅对系统的可靠程度起着决定性作⽤,⽽且对系统的运⾏效率也有很⼤影响,是衡量系统性能优劣的重要指标。

<h梵蒂冈介质故障 系统故障称为软故障,介质故障称为硬故障。

硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬时强磁场⼲扰等。

这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。

计算机病毒 总结各类故障,对数据库的影响有两种可能性。

⼀是数据库本⾝被破坏。

⼆是数据库没有被破坏,但数据可能不正确,这时由于事务的运⾏被⾮正常终⽌造成的。

恢复的实现技术恢复机制涉及两个关键问题:1、如何建⽴冗余数据;2、如何利⽤这些冗余数据实施数据库恢复。

建⽴冗余数据最常⽤的技术是数据转储和登记⽇志⽂件。

通常在⼀个数据库系统中,这两种⽅法是⼀起使⽤的。

数据转储数据转储是数据库恢复中采⽤的基本技术。

所谓转储即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。

这些备⽤的数据成为后备副本或后援副本。

转储可以分为静态转储和动态转储。

静态转储是在系统中⽆运⾏事务时进⾏的转储操作。

即转储操作开始的时刻,数据库处于⼀致性状态,⽽转储期间不允许对数据库的任何存取、修改活动。

显然,静态转储得到的⼀定是⼀个数据⼀致性的副本。

动态转储是指转储期间允许对数据库进⾏存取或修改。

数据库备份文件损坏的恢复方法和技巧

数据库备份文件损坏的恢复方法和技巧

数据库备份文件损坏的恢复方法和技巧数据库备份文件在数据库管理中具有重要的地位,它们是恢复数据的关键组成部分。

然而,有时我们可能会遇到备份文件损坏的情况,这可能是由于硬件故障、人为错误或其他原因导致的。

本文将介绍一些恢复数据库备份文件的方法和技巧,帮助您解决这个问题。

1. 检查备份文件完整性在尝试恢复之前,首先应该检查备份文件的完整性。

可以使用数据库管理系统中的备份验证命令或工具来检查备份文件的完整性。

如果备份文件被检测到有任何损坏或错误,可能需要考虑使用其他备份文件或其他恢复技术。

2. 使用备份恢复工具大多数数据库管理系统都提供了备份恢复工具,可以使用这些工具来恢复备份文件。

这些工具通常具有图形用户界面,简化了恢复过程。

它们提供了不同的选项和技巧,可以根据实际情况进行灵活配置。

通过按照工具提供的步骤和指导来执行恢复操作,可以最大限度地减少数据丢失。

3. 使用第三方恢复工具如果数据库管理系统的备份恢复工具无法恢复损坏的备份文件,可以尝试使用第三方恢复工具。

这些工具通常是由专业的数据库恢复服务提供商开发的,可以解决各种备份文件损坏问题。

这些工具可以快速识别和修复备份文件中的错误,以恢复尽可能多的数据。

但是,请务必选择信誉良好的第三方恢复工具,并谨慎评估其性能和可靠性。

4. 逐步恢复如果备份文件太大或损坏的部分仅影响了其中的一部分数据,可以考虑逐步恢复的方法。

逐步恢复意味着先尝试恢复一部分数据,然后逐步添加其余的数据。

这样可以降低恢复失败的风险,并且使恢复过程更加可控。

通过仔细选择要恢复的数据,可以减少数据丢失并快速恢复数据库。

5. 寻求专业的数据库恢复服务如果您在使用自己的恢复方法和工具时遇到了困难,或者数据库备份文件的损坏程度很严重,影响了重要的业务数据,那么寻求专业的数据库恢复服务可能是一个明智的选择。

专业的数据库恢复服务提供商通常具有权威的技术团队和专业的设备设施,可以处理各种各样的数据库恢复问题。

数据库的恢复技术

数据库的恢复技术

一、数据库恢复理论知识1、数据库恢复:DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态的功能。

2、数据库恢复机制包括“一个数据库恢复子系统”和“一套特定的数据结构”。

而其基本原理是重复存储数据,即“数据冗余(data redundancy)”3、恢复机制涉及两个关键的问题①如何建立冗余数据。

②如何利用这些冗余数据实施数据库恢复。

4、建立冗余数据最常用(也是最基本)的技术就是:数据转储和登陆日志文件。

(一般两种技术一起使用)5、基本概念①数据转储:DBA(Database Administrator)定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。

这些备用的数据文本称为后备副本或后援副本举例子:假定有三个瞬时时间t1<t2<t3。

其中t1时刻DBMS停止事务的运行而开始进行数据的转储,在到达时间t2的时候转储完毕,当到达t3的时候数据库发生故障,因此为了恢复到数据库发生故障的前一刻t(即t2<t<t3),DBA就要重装数据库后备副本,将数据库恢复到t2时刻的状态,然后重新运行自t2时刻到t3时刻的所有更新事务,这样子就可以完成数据库的恢复。

值得注意的是:转储是十分消耗时间和资源的,所以一般不会频繁运行,一般转储周期(为几小时、几天、也可以是几个月)还得选择适合你当前数据库的那个时间。

从上面中的介绍可以看出:转储需要在停止了所有事务时才可以进行,这种情况我们称之为“静态转储”,为了克服这种转储,数据库另有一种方式为“动态转储”,即转储和用户事务可以并发执行,而且能够恢复到用户事务更新到故障的前一刻。

转储的时候会涉及数据的多少问题:因此会有“海量转储”和“增量转储”两种方式。

海量:即每一次转储全部的数据,而增量:每一次只转储上一次转储后的更新过的数据。

用一张表来简单描述为:②登录日志文件(可以协助或备副本进行介质故障恢复)基本概念:日志文件:是用来记录事务对数据库的更新操作的文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 7 章数据库恢复技术1. ________ 是一系列的数据库操作,是数据库应用程序的基本逻辑单元。

2. 事务处理技术主要包括 ________ 技术和 ________ 技术。

3. 在SQL语言中,定义事务控制的语句主要有 ________. ________ 和 ________ 。

4. 事务具有四个特性:它们是 ________. ________. ________ 和 ________ 。

这个四个特性也简称为 ________ 特性。

5. 把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态)的功能,这就是________ 。

6. 数据库系统中可能发生各种各样的故障,大致可以分为 ________. ________. ________ 和 ________ 等。

7. 建立冗余数据最常用的技术是 ________ 和 ________ 。

通常在一个数据库系统中,这两种方法是一起使用的。

8. 转储可分为 ________ 和 ________ ,转储方式可以有 ________ 和 ________ 。

9. ________ 是用来记录事务对数据库的更新操作的文件。

主要有两种格式:以 ________ 为单位的日志文件和以 ________ 为单位的日志文件。

10. 试述事务的概念及事务的四个特性。

11. 为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

12. 数据库中为什么要有恢复子系统?它的功能是什么?13. 数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?14. 数据库恢复的基本技术有哪些?15. 数据库转储的意义是什么?试比较各种数据转储方法。

16. 什么是日志文件?为什么要设立日志文件?17. 登记日志文件时为什么必须先写日志文件,后写数据库?18. 针对不同的故障,试给出恢复的策略和方法。

(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)19. 什么是检查点记录,检查点记录包括哪些内容?20. 具有检查点的恢复技术有什么优点?试举一个具体的例子加以说明。

21. 试述使用检查点方法进行恢复的步骤。

22. 什么是数据库镜像?它有什么用途?答案1. 事务2. 数据库恢复并发控制3. BEGIN TRANSACTION COMMIT ROLLBACK4. 原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)ACID5. 数据库的恢复6. 事务故障系统故障介质故障计算机病毒7. 数据转储登录日志文件8. 静态转储动态转储海量转储增量转储9. 日志文件记录数据块10. 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做 , 是一个不可分割的工作单位。

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。

这个四个特性也简称为 ACID 特性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被其他事务干扰。

即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

接下来的其他操作或故障不应该对其执行结果有任何影响。

11. 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

例如某工厂的库存管理系统中,要把数量为 Q 的某种零件从仓库 1 移到仓库 2 存放。

则可以定义一个事务T ,T包括两个操作;Q1=Q1-Q,Q2=Q2+Q。

如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。

12. 因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。

13. 数据库系统中可能发生各种各样的故障,大致可以分以下几类:(1)事务内部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。

事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。

14. 数据转储和登录日志文件是数据库恢复的基本技术。

当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

15. 数据转储是数据库恢复中采用的基本技术。

所谓转储即 DBA 定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。

当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。

静态转储:在系统中无运行事务时进行的转储操作。

如上图所示。

静态转储简单,但必须等待正运行的用户事务结束才能进行。

同样,新的事务必须等待转储结束才能执行。

显然,这会降低数据库的可用性。

动态转储:指转储期间允许对数据库进行存取或修改。

动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。

但是,转储结束时后援副本上的数据并不能保证正确有效。

因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。

为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。

这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。

转储还可以分为海量转储和增量转储两种方式。

海量转储是指每次转储全部数据库。

增量转储则指每次只转储上一次转储后更新过的数据。

从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。

但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

16. (1)日志文件是用来记录事务对数据库的更新操作的文件。

(2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。

17. 把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。

有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。

如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。

如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次 UNDO 操作,并不会影响数据库的正确性。

所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

18. 答:事务故障的恢复:事务故障的恢复是由 DBMS 自动完成的,对用户是透明的。

DBMS执行恢复步骤是:(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。

(2)对该事务的更新操作执行逆操作。

即将日志记录中“更新前的值”写入数据库。

(3)继续反向扫描日志文件,做同样处理。

(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。

答:系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。

因此恢复操作就是要撤销 (UNDO) 故障发生时未完成的事务,重做 (REDO) 已完成的事务。

系统的恢复步骤是:(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完成的事务队列(UNDO 队列)。

(2)对撤销队列中的各个事务进行 UNDO 处理。

进行 UNDO 处理的方法是,反向扫描日志文件,对每个 UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值”( Before Image )写入数据库。

(3)对重做队列中的各个事务进行 REDO 处理。

进行 REDO 处理的方法是:正向扫描日志文件,对每个 REDO 事务重新执行日志文件登记的操作。

即将日志记录中“更新后的值”( After Image )写入数据库。

* 解析:在第(1)步中如何找出 REDO 队列和 UNDO 队列?请大家思考一下。

下面给出一个算法:1)建立两个事务队列 : ? UNDO-LIST: 需要执行 undo 操作的事务集合; ? REDO-LIST: 需要执行 redo 操作的事务集合;两个事务队列初始均为空。

2)从日志文件头开始,正向扫描日志文件 ? 如有新开始(遇到 Begin Transaction )的事务Ti ,把Ti 暂时放入UNDO-LIST 队列;? 如有提交的事务(遇到End Transaction ) Tj ,把 Tj 从 UNDO-LIST 队列移到 REDO-LIST 队列;直到日志文件结束。

答:介质故障的恢复:介质故障是最严重的一种故障。

恢复方法是重装数据库,然后重做已完成的事务。

具体过程是:(1) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到转储时的一致性状态。

(2) DBA 装入转储结束时刻的日志文件副本。

(3) DBA 启动系统恢复命令,由 DBMS 完成恢复功能,即重做已完成的事务。

* 解析 1)我们假定采用的是静态转储,因此第(1)步装入数据库后备副本便可以了。

2)如果采用的是动态转储,第(1)步装入数据库后备副本还不够,还需同时装入转储开始时刻的日志文件副本,经过处理后才能得到正确的数据库后备副本。

3)第(2)步重做已完成的事务的算法是: a. 正向扫描日志文件,找出故障发生前已提交的事务的标识,将其记入重做队列 b. 再一次正向扫描日志文件,对重做队列中的所有事务进行重做处理。

即将日志记录中“更新后的值”写入数据库。

19. 检查点记录是一类新的日志纪录。

它的内容包括:① 建立检查点时刻所有正在执行的事务清单。

② 这些事务的最近一个日志记录的地址。

20. 利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要 REDO ,哪些事务需要 UNDO 。

一般来说,需要检查所有日志记录。

这样做有两个问题:一是搜索整个日志将耗费大量的时间。

二是很多需要 REDO 处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。

相关文档
最新文档