数据库 chapter 10 数据库恢复技术

第十章 数据库恢复技术

介绍事务的基本概念和事务的性质,讲解数据库系统遇到故障后进行恢复技术和方法。

事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元,是一个不可分割的工作单位。

事务和程序是两个概念,一般来说,一个程序里面包含多个事务。

事务处理技术主要包括数据库恢复技术和并发控制技术。

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

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

一致性:事务执行的结果必须是使数据库从一个一致性的状态变到另一个一致性的状态,因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。

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

持续性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

事务是恢复和并发控制的基本单位。

事务ACID特性可能遭到破坏的因素有:

1)       多个事务并行运行时,不同事务的操作交叉执行;

2)       事务在运行过程中被强行停止。

第一种情况下,数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性;第二种情况下,数据库管理系统必须保证被强行终止的事务对数据库和其他事务没有任何影响。这就是数据库管理系统中恢复机制和并发控制机制的责任。

故障的种类:

事务内部的故障(使用rollback进行强行回滚,即撤销该事务已经做出的任何对数据库的修改,使其好像没有启动一样,这类恢复操作被称为事务撤销(UNDO))

系统故障

介质故障(系统故障称为软故障,介质故障称为硬故障)

计算机病毒

各类故障对数据库的影响有两种可能性,一是数据库本身被破坏,二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。

恢复:冗余,即数据库中任何一部分被破坏或不正确的数据可以根据存储在系统别处的冗余数据来重建。

恢复机制设计的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。

恢复的实现技术

数据转储

数据转储是数据库恢复中采用的基本技术,即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。   转储是十分耗费时间和资源的,不能频繁进行。

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

静态转储是在系统中无法运行事务时进行的转储操作。动态转储是指转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。

海量是指每次转储全部数据库,增量是指每次只转储上一次转储后更新过的数据。

等级日志文件(Logging)

日志文件是用来记录事务对数据库的更新操作的文件,不同的数据库系统采用的日志文件格式并不同,主要分两种:以记录为的单位的日志文件和以数据块为单位的日志文件。

以记录为单位的日志文件包括:

各个事务的开始(BEGIN TRANSACTION)标记

各个事物的结束(COMMIT或ROLLBACK)标记

各个事物的所有更新操作

每个日志记录的内容主要包括:

事务标识(标明是哪个事务)

操作的类型(插入、删除或修改)

操作对象(记录内部标识)

更新前数据的旧值(对插入操作而言,此项为空值)

更新后数据的新值(对删除操作而言,此项为空值)

以数据块为单位的日志文件,日志记录的内容包括事务标识和被更新的数据块。

日志文件的作用:

日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复,具体作用为:

1)事务故障恢复和系统故障恢复必须用日志文件

2)在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。

3)在静态转储方式中,也可以建立日志文件。

登记日志文件

为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:

1)              登记的次序严格按并发事务执行的时间次序;

2)              必须先写日志文件,后写数据库。

恢复策略

事务故障的恢复

事务故障是指事物在运行至正常终止点前被终止,这是恢复子系统利用日志文件撤销(UNDO)此事务已经对数据库进行的修改,事务故障的恢复是由系统自动完成的。

系统故障的恢复

介质故障的恢复

数据库镜像

数据库镜像功能:根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。

时间: 2024-10-09 22:09:00

数据库 chapter 10 数据库恢复技术的相关文章

数据库的完整性和恢复技术

一.数据库的完整性 1实体完整性 主码不能为空,且唯一 2参照完整性 被参照表如student表 参照表如sc表 违约处理 可能破坏参照完整性                    ← 插入元组 拒绝(not action) 可能破坏参照完整性                     ← 修改外码值→ 拒绝 删除元组                                   → 可能破坏参照完整性 拒绝.级联删除(cascade).设置为空 修改主码值                

数据库 chapter 12 数据库管理系统

第十二章 数据库管理系统 阐述DBMS的基本功能,系统结构以及主要的实现技术. DBMS应具有的基本功能 数据库定义和创建 数据组织.存储和管理 数据存取 数据库事务管理和运行管理 数据库的建立和维护 其他功能 DBMS的进程结构 实际应用中,DBMS以及应用程序都必须进入某个具体的操作系统环境,应用程序通过DBMS.DBMS通过操作系统,与数据库中的数据打交道.根据三者关系,一般有四种进程组织方案. N方案:DBMS与应用程序相融合的方案 多线索(Multi-Threaded)DBMS 就像图

数据库 chapter 13 数据库技术新发展

第十三章 数据库技术新发展 数据模型是数据库系统的核心和基础. 按照数据模型的发展,数据库技术可相应地分为三个发展阶段: 第一代的网状.层次数据库系统 第二代的关系数据库系统 第三代数据库系统为核心的数据库大家族 第一代的网状.层次数据库系统的特点: 支持三级模式的体系结构 用存取路径来表示数据之间的联系 独立的数据定义语言 导航的数据操纵语言 关系数据库包括以下三部分: 数据结构 关系操作 数据完整性(包括实体完整性.参照完整性以及与应用有关的完整性) 第三代数据库特点: 第三代数据库系统应支

数据库chapter 4 数据库安全性

第四章 数据库安全性 数据库的数据保护主要包括数据的安全性和数据的完整性. 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露.更改或破坏. 系统安全保护措施是否有效是数据库系统的主要技术标准之一. 数据库的安全性和计算机系统的安全性是紧密联系.相互支持的. 计算机系统安全性是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件.软件以及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等. 计算机系统的安全性问题可分为技术安全.管理安全和政策法律. 用

数据库 chapter 7 数据库设计

第七章 数据库设计 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储还和管理数据.满足各种用户的应用要求,包括信息管理要求和数据操作要求. 信息管理要求是指在数据库中应该存储和管理哪些数据对象:数据操作要求是指对数据对象需要进行哪些操作,如查询,增删改统计等操作. 数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境.高效率的运行环境包括:数据库数据的存取效率,数据库存储空间的利用率,数据库

数据库 chapter 5 数据库完整性

第五章 数据库完整性 数据库的完整性是指数据库的正确性和相容性. 例如,学生学号必须唯一,性别只能是男或女等等: 和数据安全性的区别: 数据的完整性是为了防止数据库中存在不正确的数据,数据库的安全性是保护数据库防止恶意的破坏和非法的存取.因此,完整性检查和控制的防范对象是不合语义的,不正确的数据,防止它们进入数据库.安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取. 为维护数据库的完整性,DBMS必须能够: 提供定义完整性约束条件的机制: 提供完整性检查的方法: 违约处理

数据库 chapter 8 数据库编程

第八章 数据库编程 应用系统中使用SQL编程来访问和管理数据库中数据的方式主要有:嵌入式SQL, PL/SQL, ODBC编程, JDBC编程和OLEDB编程等方式. 嵌入式SQL 嵌入式SQL是将SQL语句嵌入程序设计语言中,被嵌入的程序设计语言,如C, C++, java等被称为宿主语言,简称主语言. 嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据. 嵌入式SQL可分为静态式与动态式. 游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字,用户可

数据库 - 数据库恢复技术

事务定义 Jim(James) Gray 詹姆斯·格雷 1998年图灵奖获得者 数据库技术和事务处理专家 二.事务的特性 定义 一个数据库操作序列 一个不可分割的工作单位 恢复和并发控制的基本单位 事务和程序比较 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序. 一个程序通常包含多个事务 显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 ..... ..... COM

专业Oracle数据库恢复技术支持

数据库作为企业的核心,如果数据库因损坏无法正常运行,导致数据丢失,将给企业带来无法挽回的经济损坏.当您的数据库出现故障,又没有有效的备份之时,我们就是您的最后一道防线,尽最大可能帮您挽救数据库,减少损失.我们有几百套Oracle数据库恢复经历:版本从ORACLE 7.3.ORACLE 8/8I,ORACLE 9I.ORACLE 10G,ORACLE 11G和ORACLE 12C:平台有Linux.Windows.AIX.HP-UNIX.SOLARIS等:客户从西藏到海南,从黑龙江到贵州遍布中国所