数据库恢复技术资料
有的可以通过事务程序本身发现,而有的是非预期的,不能由事务程序处理。
2018/10/24
2、 系统故障
通常称为软故障,指造成系统突然停止运转的事件,包括硬件故障、数 据库软件或操作系统漏洞,导致易失性存储器内容的丢失,并使得事务处理
停止,而非易失性存储器完好无损。这类故障发生时,可能出现以下两种情
检查点的有关文件
日志文件 重新开始文件
①
④Ci的记录地址 检查点Ci的重 新开始记录 Cj的记录地址
日 志 部 分
②
T1
D1 T2 D2…
检查点记录
③
DB
2018/10/24
具有检查点的数据库恢复策略
检查点Tc T1 T2 T4 T3 不重做
系统故障Ti
时间
重做
撤消 T5
2018/10/24
5、数据库镜像
然后我们可以设计在数据库故障发生后仍保证数据库一致性以及事务原子性
的算法,即恢复算法。 恢复的基本原理很简单。可以用一个词来概括:冗余。换句话说,就
是数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的
冗余数据来重建。
2018/10/24
恢复的实现技术
恢复机制涉及的两个关键问题是:(1)如何建立冗余数据;(2)如何利 用这些冗余数据实施数据库恢复。 建立冗余数据最常用的技术是数据转储和登录日志文件。通常在一个数据库
由DBMS完成。
2018/10/24
4、具有检查点Βιβλιοθήκη 恢复技术 问题的提出:在执行恢复操作时,需要扫描整个日志文件,有可能重复执行某 些操作。 检查点的用途是在磁盘上建立事务处理一致性的标志。 技术原理:在日志文件中增加一类新记录,检查点; 增加一个重新开始文件;
恢复子系统动态维护日志。
2018/10/24
2018/10/24
3、介质故障
通常称为硬故障,主要指外存故障,如磁盘损坏、磁头碰撞、瞬时 强磁场干扰等。这类故障将破坏存储在介质上的数据库或部分数据库, 并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的 可能性小得多,但破坏性最大。
4、 计算机病毒
计算机病毒目前已成为计算机系统的主要威胁,自然也是数据库系 统的主要威胁,是一种人为的故障或破坏,是一种特殊的恶性计算机程
2018/10/24
2、系统故障的恢复 系统故障造成数据库不一致状态的原因有两个:一是未完成事务的更新可能 已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入 数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。 系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。
2018/10/24
2、日志文件
日志文件是用来记录事务对数据库更新操作的文件,主要有两种格式:以
记录为单位的日志文件和以数据块为单位的日志文件。 以记录为单位的日志文件包括:各个事务的开始(Start Transaction) 标记、各个事务的结束(Commit或Rollback)标记、各个事务的所有更新 操作。 每个事务的开始标记、结束标记和每个更新操作构成一个日志记录(Log Record)。
重要指标。
实现可恢复性的基本原理是重复存储数据即“数据冗余”(Data Redundancy)。
2018/10/24
故障分类
1、 事务故障 有两种错误可能造成事务执行失败: (1)逻辑错误。事务由于某些内部条件而无法继续正常执行;(2)系统错误。 系统进入一种不良状态(如死锁),结果事务无法继续正常执行。 事务内部的故障引起数据库故障,数据库可能处于不正确的状态。这种情况
显然,静态转储得到的一定是一个数据一致性的副本。
静态转储简单,但转储必须等待正运行的用户事务结束才能进行。同样, 新的事务必须等待转储结束才能执行。这样显然会降低数据库的可用性。
2018/10/24
动态转储是指转储期间允许对数据库进行存取或修改,即转储和用户事务
可以并发执行。
动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束, 也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正 确有效。例如,在转储期间的某个事务将A改为100。转储结束后,后备副本上 的A已经是过时数据了。为此,必须把转储期间各事务对数据库的修改活动登记 下来,建立日志文件(Log File)。
2018/10/24
同步方法是:通过发送所有主站点的日志记录到远程备份站点,远程备份 站点根据日志记录执行同样的操作来达到同步。 注意:不是传送更新数据的操作命令,这样可大大减少数据的传送量。远
程备份站点必须物理地与主站点分开,可以将它放在不同的地区,这样发生在
主站点的灾害就不会殃及远程备份站点。
③ 在静态转储方式中,也可以建立日志文件。当数据库毁坏后可重新装入后 备副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成 的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。
2018/10/24
利用日志文件恢复数据库
登记日志文件 故障发生点 静态转储 正常运行 Ta Tb 利用日志文件 恢复事务 Tf 运行事务
2018/10/24
系统的恢复步骤是:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识 记入重做队列,同时找出故障发生时尚未完成的事务,将其事务标识记入撤消 队列。 (2)对撤消队列中的各个事务进行撤消(UNDO)处理。 (3)对重做队列中的各个事务进行重做(REDO)处理。
2018/10/24
序,能迅速繁殖和传播,造成对计算机系统包括数据库的危害。
2018/10/24
以上各类故障对数据库的影响有两种可能性:一是数据库本身被破坏; 二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常 中止造成的。 要确定系统如何从故障中恢复,我们首先需要确定用于存储数据的设 备的故障状态。其次,我们必须考虑这些故障状态对数据库内容有什么影响。
装副本 恢复
登记日志文件
2018/10/24
为保证数据库是可恢复的,登记日志文件时必 须遵守两条原则:
1) 登记的次序严格按并发事务执行的时间次序;
2) 必须先写日志文件后写数据库。
2018/10/24
恢复策略
1、事务故障的恢复 事务故障是指事务在运行至正常结束点前被中止。事务故障的恢复是由系统自 动完成的,对用户透明。 系统的恢复步骤是: (1)反向扫描日志文件,查找该事务的更新操作。 (2)对该事务的更新操作执行逆操作, (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理, 直至读到该事务的开始标记,事务故障恢复就完成。
2018/10/24
转储按转储方式分为海量转储和增量转储。海量转储是指每次转储全部数 据库。增量转储则指每次只转储上一次转储后更新过的数据。 从恢复的角度看,用海量转储得到的后备副本进行恢复会更方便一些。但 如果数据库很大,事务处理又非常频繁,则增量转储方式更实用、有效。 数据转储有两种方式,分别可以在两种方式下进行,因此数据转储方法可 以分为四类:动态海量转储、动态增量转储、静态海量转储和静动态增量转储。
数据库恢复技术
问题的提出:数据库系统出现故障后,如何把数 据库从错误状态恢复到正确状态? 恢复技术:数据库备份+日志文件
2018/10/24
恢复机制(recovery scheme)是数据库系统必不可少的组成部分,它负责将
数据库恢复到故障发生前的某个一致的状态。恢复机制还必须提供高可用性
(high availability),也就是说,它必须将发生故障后数据库不能使用的时间减 少到最小。数据库系统所采用的恢复技术是否行之有效,不仅对系统的可靠程度 起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的
块。由于将更新前的整个块和更新后的整个块都放入日志文件中,因而操作的类型 和操作对象等信息就不必放入日志记录中。
2018/10/24
日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复 和系统故障恢复,并协助后备副本进行介质故障恢复。具体的作用如下: ① 事务故障恢复和介质故障恢复必须用日志文件。 ② 在动态转储方式中必须建立日志文件,后备副本和日志文件综合起来才能 有效地恢复数据库。
2018/10/24
主站点
网络
备份站点
DB
日志记录
DB
日志记录
2018/10/24
介质故障的发生往往是灾难性的,所以要尽力防止! 通常在数据中心采用磁盘镜像,双机备份,双机磁盘阵列等三种服务器容
错技术:
服务器
2018/10/24
服务器
服务器
服务器
服务器
RAID 2018/10/24
谢 谢!
2018/10/24
数据转储与恢复
完成 转储 正常运行 Ta 装副本 恢复 Tb 重新运行事务
故障
Tf
2018/10/24
转储按转储时的状态分为静态转储和动态转储。 静态转储是在系统中无运行事务时进行的转储操作,即转储操作开始的时 刻数据库处于一致性状态,而转储期间不允许对数据库的任何存取、修改活动。
2018/10/24
以数据块为单位的日志文件包括:事务标识(标明是哪个事务)、操作的类型 (插入、删除或修改)、操作对象(记录内部标识)、更新前数据的旧值(对插入 操作而言此项为空值)、更新后数据的新值(对删除操作而言此项为空值)。
对以数据块为单位的日志文件,日志记录的内容包括事务标识和被更新的数据
系统中,这两种方法是一起使用的。
2018/10/24
1、 数据转储 数据转储就是DBA定期地将整个数据库复制到磁带或另一个磁盘上保存
起来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到
数据库恢复技术
数据库恢复技术---恢复内容开始---数据库恢复技术事务:是⽤户定义的⼀个数据库操作序列,这些操作要么全做,要么全不做,是⼀个不可分割的⼯作单位。
事物的 ACID 特性:原⼦性、⼀致性、隔离性、持续性。
恢复的实现技术:建⽴冗余数据 -> 利⽤冗余数据实施数据库恢复。
建⽴冗余数据常⽤技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记⽇志⽂件。
ACID特性1. 原⼦性(Atomicity)⼀个原⼦事务要么完整执⾏,要么⼲脆不执⾏。
这意味着,⼯作单元中的每项任务都必须正确执⾏。
如果有任⼀任务执⾏失败,则整个⼯作单元或事务就会被终⽌。
即此前对数据所作的任何修改都将被撤销。
如果所有任务都被成功执⾏,事务就会被提交,即对数据所作的修改将会是永久性的。
2. ⼀致性(Consistency)⼀致性代表了底层数据存储的完整性。
它必须由事务系统和应⽤开发⼈员共同来保证。
事务系统通过保证事务的原⼦性,隔离性和持久性来满⾜这⼀要求; 应⽤开发⼈员则需要保证数据库有适当的约束(主键,引⽤完整性等),并且⼯作单元中所实现的业务逻辑不会导致数据的不⼀致(即,数据预期所表达的现实业务情况不相⼀致)。
例如,在⼀次转账过程中,从某⼀账户中扣除的⾦额必须与另⼀账户中存⼊的⾦额相等。
3. 隔离性(Isolation)隔离性意味着事务必须在不⼲扰其他进程或事务的前提下独⽴执⾏。
换⾔之,在事务或⼯作单元执⾏完毕之前,其所访问的数据不能受系统其他部分的影响。
当我们编写了⼀条 update 语句,提交到数据库的⼀刹那间,有可能别⼈也提交了⼀条 delete 语句到数据库中。
也许我们都是对同⼀条记录进⾏操作,可以想象,如果不稍加控制,就会出⼤⿇烦来。
我们必须保证数据库操作之间是“隔离”的(线程之间有时也要做到隔离),彼此之间没有任何⼲扰。
4. 持久性(Durability)持久性表⽰在某个事务的执⾏过程中,对数据所作的所有改动都必须在事务成功结束前保存⾄某种物理存储设备。
7_数据库恢复技术
18
活锁和死锁
19
封锁技术可以有效地解决并行操作的一致性问题,但也 带来一些新的问题:可能引起活锁和死锁。 活锁:
在多个事务请求对同一 数据封锁时,总是使某 一用户事务等待的情况 称为活锁。
避免活锁的法:
采用先来先服务的策略。
死锁
死锁:多事务交错等待的僵持局面。 产生死锁的原因: T1 T2
20
事务的概念 事务(Transaction):
事务是用户定义的一个数据库操作序列,这 些操作作为一个不可分割的工作单元,要么 全做,要么全不做。 数据库恢复和并发控制的基本单位 数据库系统中通常有多个事务并行运行
3
事务和程序是两个概念
在关系数据库中,一个事务可以是一条SQL语 句,一组SQL语句或整个程序 一个应用程序通常包含多个事务
事务管理的内容
引起事务不完全的三个故障原因:
由于出现异常,中途中止或不成功退出; 可能因电源等故障,系统崩溃; 遇到如不能访盘等异常状态而中止。
8
ACID准则的保证:
不仅在系统正常如此,在系统故障时也应如此;在单 个事务执行时如此,在事务并发执行时也应如此。
故障恢复:
保证事务在故障时满足ACID准则的技术;
三类不一致性(2/2)
事务T1无法再现前一次读取结果。
12
不可重复读:指事务T1读取数据后,事务T2执行更新操作,使
三类不可重复读
T1读取某一数据后: 1. T2对其做了修改,当T1再次读 该数据时,得到与前一次不同 的值; 2. T2删除了其中部分记录,当T1 再次读取数据时,发现某些记 录神密地消失了; 3. T2插入了一些记录,当T1再次 按相同条件读取数据时,发现 多了一些记录。 后两种不可重复读有时也称为 幻影现象
数据库容错与恢复技术-第1篇
数据库监控与维护
1.监控数据库运行状态,及时发现故障和异常。 2.定期对数据库进行维护和优化,提高数据库性能。 3.建立完善的数据库运维体系,确保数据库稳定运行。 数据库监控与维护是保障数据一致性的重要保障措施之一。通 过监控数据库的运行状态,可以及时发现故障和异常,避免因 为数据库故障而导致的数据不一致问题。同时,定期对数据库 进行维护和优化,可以提高数据库的性能和稳定性,减少因为 数据库性能问题而导致的数据不一致问题。此外,还需要建立 完善的数据库运维体系,确保数据库的稳定运行和数据一致性 保障。
1.随着技术的不断发展,数据库容错技术也在不断进步和完善 ,包括备份技术的优化、高可用技术的提升和容错管理工具的 智能化等。 2.云计算、大数据和人工智能等新兴技术的应用也为数据库容 错技术的发展带来了新的机遇和挑战。 3.未来,数据库容错技术将更加注重自动化、智能化和可视化 等方面的发展,以提高容错效率和降低管理成本。
数据库容错技术简介
▪ 数据库高可用技术
1.数据库高可用技术是指通过特定的技术手段和方法,确保数据库系统能够持续、 稳定地提供服务的技术。 2.常见的高可用技术包括数据库集群、数据库复制和数据库分区等。这些技术可以 大大提高数据库的并发处理能力和容错能力。 3.在实施高可用技术时,需要考虑数据库的负载均衡、故障切换和数据一致性等问 题。
数据库容错与恢复技术
数据一致性保障措施
数据一致性保障措施
数据备份与恢复
1.定期备份数据库,确保数据可恢复。 2.采用可靠的恢复技术,确保数据完整性。 3.建立应急恢复计划,以应对突发事件。 随着数据量的不断增长,数据备份与恢复已成为保障数据一致 性的重要手段。为了确保数据的可靠性,需要定期备份数据库 ,以便在数据损坏或丢失时进行恢复。同时,还需要采用可靠 的恢复技术,确保恢复后的数据完整性和准确性。此外,为了 应对突发事件,还需要建立应急恢复计划,确保在短时间内恢 复数据,减少损失。
《数据库备份与恢复》课件
03 02
数据恢复的方法
增量备份与差异备份 使用增量备份或差异备份进行数据恢复。 适用于需要快速恢复少量数据的情况。
恢复的验证与测试
完整性验证
01
通过校验和或哈希值等方法进行验证。
03
02
检查恢复的数据是否完整,没有损坏或丢失 。
04
功能测试
测试恢复的数据库是否能够正常运行,满 足业务需求。
中小型数据库备份案例
总结词
中小型数据库备份工具选择
详细描述
中小型数据库备份需要选择适合的备份工具,这些工具需要具备高效、稳定、 易用的特点,能够满足中小型数据库备份的需求。同时,备份工具需要具备数 据压缩、加密等功能,以确保数据的安全性。
中小型数据库备份案例
总结词
中小型数据库备份成本与效益分析
详细描述
05
06
进行常规查询、更新、删除等操作,确保 数据库功能正常。
04
数据库备份与恢复的实践
备份计划的制定与实施
确定备份频率
根据业务需求和数据重要性,确定合适的 备份频率,如每日、每周或每月。
选择备份方式
选择合适的备份方式,如全量备份、增量 备份或差异备份,以满足数据恢复需求。
确定备份存储
选择可靠的存储设备或存储介质,确保备 份数据的安全性和可恢复性。
详细描述
企业级数据库备份需要考虑成本与效益的关系。在制定备份策略时,需要充分考虑备份硬件、存储空间、电力等 成本因素,同时需要考虑数据丢失、业务中断等风险因素。在制定备份策略时,需要权衡成本与效益,选择最适 合的备份方案。
中小型数据库备份案例
总结词
中小型数据库备份策略
详细描述
针对中小型数据库,需要制定适合的 备份策略,包括备份频率、备份内容 、备份存储位置等。由于中小型数据 库的数据量相对较小,可以选择更为 高效、快速的备份方案。
数据库备份与恢复技术手册
数据库备份与恢复技术手册数据库备份与恢复是数据库管理中至关重要的一部分,它涉及到数据的安全性和可靠性。
本技术手册旨在为数据库管理员提供数据库备份与恢复的详细步骤和技术要点,确保数据库能够在灾难事件发生后尽快恢复,并保护数据的完整性。
第一部分:备份1. 定期备份数据库备份应该成为日常操作的一部分。
建议将备份计划定期安排,以确保重要数据的安全。
可以根据业务需求和数据敏感性来决定备份频率,如每天、每周或每月。
2. 分级备份分级备份包括完全备份和增量备份。
完全备份将整个数据库备份到磁盘或磁带上,而增量备份只备份自上次备份以来发生的变化部分。
通过分级备份可以节省存储空间和备份时间。
3. 存储介质选择选择适合的存储介质对于数据库备份至关重要。
可选的存储介质包括本地磁盘、网络存储设备和云存储服务。
需要考虑存储容量、读写速度和数据安全性等因素。
4. 备份验证备份完成后,验证备份文件的完整性和可用性至关重要。
可以通过恢复一个样本数据库来确认备份文件是否可以成功恢复。
第二部分:恢复1. 选择恢复点当数据库出现故障或数据丢失时,需要选择一个合适的恢复点。
可以根据备份的时间戳或事务日志来确定最近的备份点。
2. 数据库还原数据库还原是将备份数据重新加载到数据库中的过程。
根据选择的恢复点,可以使用备份文件进行完全还原或增量还原。
还原过程需要保证数据库事务的一致性。
3. 日志恢复在数据库故障或崩溃后,可能存在未提交的事务或部分事务记录丢失的情况。
通过应用事务日志,可以将数据库恢复到最近的一致状态。
4. 测试恢复过程在实际灾难发生之前,测试恢复过程是非常重要的。
定期进行恢复测试,可以帮助发现备份和恢复过程中的潜在问题,并及时进行修复。
第三部分:最佳实践1. 多重备份为了数据安全和可靠性,建议实施多重备份策略。
除了常规的定期备份,可以考虑使用磁带库、远程备份和异地备份等方式。
2. 数据库容灾数据库容灾是一种通过在远程地点建立热备份数据库来保障系统可用性的方法。
数据库恢复技术有哪些
数据库恢复技术有哪些数据库恢复技术有:1、数据转储,即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。
2、登记⽇志⽂件,⽇志⽂件是⽤来记录事务对数据库的更新操作的⽂件,设⽴⽇志⽂件可以进⾏事务故障恢复、系统故障恢复、协助后备副本本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
数据库恢复概述 数据库管理系统必须具有把数据库从某⼀错误状态恢复到某⼀已知的正确状态的功能,这就是数据库的恢复。
恢复⼦系统是数据库管理系统的⼀个重要组成部分,⽽且还相当庞⼤,常常占整个系统代码的百分之⼗以上。
数据库系统采⽤的恢复技术是否⾏之有效,不仅对系统的可靠程度起着决定性作⽤,⽽且对系统的运⾏效率也有很⼤影响,是衡量系统性能优劣的重要指标。
<h梵蒂冈介质故障 系统故障称为软故障,介质故障称为硬故障。
硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬时强磁场⼲扰等。
这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
计算机病毒 总结各类故障,对数据库的影响有两种可能性。
⼀是数据库本⾝被破坏。
⼆是数据库没有被破坏,但数据可能不正确,这时由于事务的运⾏被⾮正常终⽌造成的。
恢复的实现技术恢复机制涉及两个关键问题:1、如何建⽴冗余数据;2、如何利⽤这些冗余数据实施数据库恢复。
建⽴冗余数据最常⽤的技术是数据转储和登记⽇志⽂件。
通常在⼀个数据库系统中,这两种⽅法是⼀起使⽤的。
数据转储数据转储是数据库恢复中采⽤的基本技术。
所谓转储即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。
这些备⽤的数据成为后备副本或后援副本。
转储可以分为静态转储和动态转储。
静态转储是在系统中⽆运⾏事务时进⾏的转储操作。
即转储操作开始的时刻,数据库处于⼀致性状态,⽽转储期间不允许对数据库的任何存取、修改活动。
显然,静态转储得到的⼀定是⼀个数据⼀致性的副本。
动态转储是指转储期间允许对数据库进⾏存取或修改。
数据库系统概论数据库恢复技术
延迟执行更新
4.写 数据 页 SQL
UPDATE
5.写日志操作 6.确认 7.写commit
RAM中 的数据页
8.确认
日志
Insert Delete Update Commit
1.事务开始 2.执行更新命令
10.在恰当的时 候写入数据文件
数据文件Βιβλιοθήκη 迟更新技术试考虑如下数据库事务T0和T1,其中A、B和C 的初值分别为1000,2000和700,T0和T1按照 串行调度<T0, T1>执行:
数据库恢复概述
数据库恢复子系统的目的包括:
– 保证事务的原子性,即确保一个事务被交付 运行后,要么该事务中的所有数据库操作都 被成功地完成,而且这些操作的结果被永久 地存储到数据库中,要么这个事务对数据库 没有任何影响。
– 当系统发生故障以后,数据库能够恢复到正 确状态。
故障的种类
事务内部的故障
恢复策略
介质故障的恢复
– 介质故障将全部或部分地破坏数据库甚至是 日志文件,其恢复的方法是:
• 装入最新的数据库后备副本(离故障发生时刻最 近的转储副本),使数据库恢复到最近一次转储 时的一致状态。对于动态转储的副本,还需要装 入转储开始时刻的日志文件副本,将数据库恢复 到一致状态。
• 装入转储以后的日志文件副本,重做已经完成的 事务。
– 对撤销队列中的各个事务进行UNDO处理。即反向 扫描日志文件,对每个UNDO事务的更新操作执行 逆操作,即将日志文件中的“更新前的值”写入数 据库。
– 对重做队列中的各个事务进行REDO处理。即正向 扫描日志文件,对每个REDO事务重新执行日志文 件登记的操作,即将日志文件中的“更新后的值” 写入数据库。
数据库的恢复技术
一、数据库恢复理论知识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时刻的所有更新事务,这样子就可以完成数据库的恢复。
值得注意的是:转储是十分消耗时间和资源的,所以一般不会频繁运行,一般转储周期(为几小时、几天、也可以是几个月)还得选择适合你当前数据库的那个时间。
从上面中的介绍可以看出:转储需要在停止了所有事务时才可以进行,这种情况我们称之为“静态转储”,为了克服这种转储,数据库另有一种方式为“动态转储”,即转储和用户事务可以并发执行,而且能够恢复到用户事务更新到故障的前一刻。
转储的时候会涉及数据的多少问题:因此会有“海量转储”和“增量转储”两种方式。
海量:即每一次转储全部的数据,而增量:每一次只转储上一次转储后的更新过的数据。
用一张表来简单描述为:②登录日志文件(可以协助或备副本进行介质故障恢复)基本概念:日志文件:是用来记录事务对数据库的更新操作的文件。
10数据库恢复技术
事务ACID特性可能遭到破坏的因素:
• 多个事务并行运行时,不同事务的操作交叉执行; (并行控制机制) • 事务在运行过程中被强行停止。 (恢复机制)
12
第十章 数据库恢复技术
10.2 数据库恢复概述
• 故障是不可避免的 – 计算机硬件故障 – 系统软件和应用软件的错误 – 操作员的失误 – 恶意的破坏 • 故障的影响 – 运行事务非正常中断 – 破坏数据库 • 数据库管理系统对故障的对策 – DBMS提供恢复子系统 – 保证故障发生后,能把数据库中的数据从错误状态 恢复到某种逻辑一致的状态 – 保证事务ACID • 恢复技术是衡量系统优劣的重要指标
32
第十章 数据库恢复技术
4. 基于记录的日志文件--每条日志记录的内容
• • • • • 事务标识(标明是哪个事务) 操作类型(插入、删除或修改) 操作对象(记录ID) 更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言, 此项为空值)
5. 基于数据块的日志文件--每条日志记录的内容 • 事务标识(标明是哪个事务) • 更新前数据所在的整个数据块的值(对插入操作而言, 此项为空值) • 更新后整个数据块的值(对删除操作而言, 此项为空值)
28
第十章 数据库恢复技术
利用动态转储副本进行恢复
Ta Tb
Tf
动态转储
正常运行
运行事务
故障发生点
─┼───────┼─────────────
登记日志文件
登记新日志文件
─────────┼─────────────
转储日志文件
重装后备副本,然后利用转储的日志文件恢复
恢复到一 致性状态
━━━━━━┥
10.4.1 数据转储
08_DataBase 数据库恢复技术
已写入到外存 已完成的事务 对数据的操作 没有写入到外存 重做(REDO)所有已提交的事务
三、介质故障
• 硬件故障使存储在外存中的数据部分丢 失或全部丢失
• 介质故障比前两类故障的可能性小得多, 但破坏性大得多
介质故障的常见原因
• 硬件故障
– 磁盘损坏
– 磁头碰撞
– 操作系统的某种潜在错误
– 瞬时强磁场干扰
– 更新后数据的新值(对删除操作而言, 此项为空值)
– 用户名 – 。。。
二、日志文件的用途
1.用途
– 进行事务故障恢复
– 进行系统故障恢复
– 协助后备副本进行介质故障恢复
三、登记日志文件的原则
• 为保证数据库是可恢复的,登记日志文件时必
须遵循两条原则 – 登记的次序严格按并行事务执行的时间次序 – 必须先写日志文件,后写数据库
• 事务故障:事务在运行至正常终止点前被中止
• 恢复方法
由恢复子系统利用日志文件撤消(UNDO) 此事务已对数据库进行的修改
• 事务故障的恢复由系统自动完成,不需要用户 干预
事务故障的恢复步骤
1. 反向扫描文件日志(即从最后向前扫描日志文件),
查找该事务的更新操作。 2. 对该事务的更新操作执行逆操作。即将日志记录中 “更新前的旧值” 写入数据库。
• 什么是事务故障
事务在运行过程中由于种种原因未运行 至正常终止点就夭折了。
• 事务故障的常见原因
– – – – – – 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁 。。。。
事务故障的恢复
• 发生事务故障时,夭折的事务可能已把 对数据库的部分修改写回磁盘 • 通常用调用ROLLBACK来回滚该事务, 使得这个事务象根本没有启动过一样, 通常把这类恢复操作称为撤消事务 (UNDO)
