数据库系统概论数据库恢复技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库恢复概述
数据库恢复子系统的目的包括:
– 保证事务的原子性,即确保一个事务被交付 运行后,要么该事务中的所有数据库操作都 被成功地完成,而且这些操作的结果被永久 地存储到数据库中,要么这个事务对数据库 没有任何影响。
– 当系统发生故障以后,数据库能够恢复到正 确状态。
故障的种类
事务内部的故障
SQL中事务的定义
事务以Begin transaction开始,以 Commit work或 Rollback work结束。 Commit work表示提交,事务正常结束。 Rollback work表示事务非正常结束,撤 消事务已做的操作,回滚到事务开始时 状态。
事务的例子
BEGIN TRANSACTION READ 甲账户余额; 甲账户余额 -= 1000; IF 甲账户余额 <0 THEN; ROLLBACK WORK; ELSE WRITE 甲账户余额; READ 乙账户余额; 乙账户余额+=1000; WRITE 甲账户余额; COMMIT WORK;
恢复的实现技术
正常运行 T0
重装后备副本
恢复 T0
T1
T3
重新运行事务
T1
T3
恢复的实现技术
转储可以分为:
– 静态转储
• 静态转储是在系统中无事务运行时进行的转储操 作。即转储开始时数据库处于一致状态,转储过 程中,不允许对数据库的任何存取、更新活动。 由于转储必须等待正在运行的事务结束才能开始, 而新的事务必须等待转储结束才能执行,降低了 数据库的可用性。
事务的特性(ACID)
原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的 诸操作要么全做,要么全不做。 一致性(Consistency) 事务执行的结果应当使数据库从一个一致性状 态转变为另一个一致性状态。
事务的特性(ACID)
隔离性(Isolation) 一个事务的执行不能被其它事务干扰。即 一个事务内部的操作及使用的数据对其它 并发事务是隔离的,并发执行的各个事务 之间不能相互干扰。
第七章 数据库恢复技术
事务
事务定义
– 事务是用户定义的一个数据库操作序列构成, 这些操作要么全做,要么全不做,是一个不 可分割的工作单位。
– 事务与应用程序是两个概念,一般来说,一 个应用程序可以包含多个事务。
– 事务的开始与结束可以由用户显式控制。如 果用户没有显式定义事务,则由DBMS按缺 省规定自动划分事务。
• 海量转储指每次转储全部数据库。
– 增量转储
• 增量转储指每次只转储上一次转储后更新过的数 据。
恢复的实现技术
转储状态
动态转储
静态转储
转储 海量转储 动态海量转储 静态海量转储 方式 增量转储 动态增量转储 静态增量转储
转储计划的例子
周日 周一 周二 周三 周四 周五 周六
23:00 海量 增量
增量
增量 海量
增量
增量
恢复的实现技术
– 登录日志文件
• 日志文件是用来记录事务对数据库的更新 操作的文件。日志文件主要有两种格式: 以记录为单位的日志文件和以数据块为单 位的日志文件。
• 以记录为单位的日志文件记录的内容包括:
– 各个事务的开始标记 – 各个事务的结束标记 – 各个事务的所有更新操作
故障的种类
介质故障
– 介质故障指外存故障,如磁盘损坏,瞬时强 磁场干扰等。这类故障将破坏全部或部分数 据库,并影响正在存取这部分数据的所有事 务。
计算机病毒
– 计算机病毒是一种人为的破坏或故障,已成 为数据库系统的主要威胁之一。
恢复的实现技术
数据库恢复的原理
– 数据库恢复的基本原理为冗余。如果数据库 中任何一部分数据被破坏或处于不正确的状 态,则可以通过存储在系统别处的冗余数据 来重建。
事务的特性(ACID)
持久性(Durability) 一个事务一旦提交之后,它对数据库的 影响必须是永久的。事务提交后,系统 发生故障不能改变事务的持久性。
数据库恢复概述
虽然数据库系统中采用了各种措施来保 证系统安全性和完整性,但计算机系统 的故障是不可避免的,这些故障轻则造 成运行事务的非正常中断,影响数据库 中数据的正确性,重则破坏数据库,使 数据库中的全部或部分数据丢失,因此 数据库管理系统必须具有把数据库从错 误状态恢复到某一已知正确状态的功能, 这就是数据库的恢复。数据库恢复是通 过数据库管理系统的恢复子系统完成的。
数据库恢复的关键问题Βιβλιοθήκη Baidu
– 如何建立冗余 – 如何利用冗余实施数据库恢复
恢复的实现技术
建立冗余的常用方法
– 数据转储
• 数据转储是数据库恢复中采用的基本技术。所谓 转储即DBA定期地将整个数据库复制到磁带或其 它存储设备上保存起来的过程。这些备用的数据 文本称为后备副本或后援副本。
• 当数据库发生故障时,可以将后备副本重新装入, 并重新运行自转储以后的所有更新事务。
恢复的实现技术
• 上述内容均作为日志文件中的一个日志记录,每 个日志记录的内容包括:
– 事务标识(标明是哪个事务) – 操作的类型(插入、删除或修改) – 操作对象(记录的内部标识) – 更新前数据的旧值(对插入操作,此项为空) – 更新后数据的新值(对删除操作,此项为空)
– 对于以数据块为单位的日志文件,日志记录 的内容包括事务标识以及更新前和更新后的 数据块。
– 事务内部的故障包括可预期的和不可预期的。 可预期的是指可以通过事务程序本身发现和 处理的故障。而不可预期的错误是指那些不 能由应用程序处理的事务故障,如死锁,运 算溢出,违反完整性规则等。
故障的种类
系统故障
– 系统故障是指造成系统停止运行的任何事情, 使得系统要重新启动。如硬件错误,操作系 统故障,停电等。这类故障影响正在运行的 所有事务,所有事务都非正常终止,但不会 破坏数据库。恢复子系统必须清除所有未完 成的事务对数据库的修改,同时重做所有已 完成的事务,保证数据库的一致性。
恢复的实现技术
– 动态转储
• 动态转储是指转储期间允许对数据库进行存取或 修改,即转储和用户事务可以并发执行。动态转 储克服了静态转储的缺点,但除了转储数据库的 数据以外,还必须把转储期间各事务对数据库的 修改记录下来,这样才能保证把数据库恢复到某 一时刻的一致状态。
恢复的实现技术
转储的方式
– 海量转储