第十章 数据库恢复技术

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

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

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

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

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

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

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

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

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

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

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

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

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

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

故障的种类:

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

系统故障

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

计算机病毒

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

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

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

恢复的实现技术

数据转储

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

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

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

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

等级日志文件(Logging)

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

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

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

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

各个事物的所有更新操作

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

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

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

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

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

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

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

日志文件的作用:

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

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

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

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

登记日志文件

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

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

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

恢复策略

事务故障的恢复

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

系统故障的恢复

介质故障的恢复

数据库镜像

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

转载于:https://www.cnblogs.com/Cheryl06/p/7300665.html

数据库 chapter 10 数据库恢复技术相关推荐

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

    第十二章 数据库管理系统 阐述DBMS的基本功能,系统结构以及主要的实现技术. DBMS应具有的基本功能 数据库定义和创建 数据组织.存储和管理 数据存取 数据库事务管理和运行管理 数据库的建立和维护 ...

  2. 数据库chapter 4 数据库安全性

    第四章 数据库安全性 数据库的数据保护主要包括数据的安全性和数据的完整性. 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露.更改或破坏. 系统安全保护措施是否有效是数据库系统的主要技术 ...

  3. 计算机系统灾难性恢复,企业数据库备份和灾难性恢复的关键途径研究

    [摘 要]在当今企业信息化建设步伐日益加快的新形势下,数据库技术在企业办公自动化等等各个方面都取得了非常广泛的应用,并且促进了企业办公效率的大幅度提高,也实现了企业办公成本的有效节约.然而,也应该看到 ...

  4. mysql数据库名称sid_数据库sid 和数据库名

    数据库名.实例名和ORACLE_SID的区别 导读: 最近因看到论坛有人问起这方面的东西,将自己的理解加上查阅相关资料整理如下,如果不全或不当的地方,望指正并补全它. 数据库名(DB_NAME).实例 ...

  5. 第10章 数据库恢复技术 | 数据库知识点整理

    第10章 数据库恢复技术 了解 数据库的一致性状态 数据库运行中可能产生的故障类型,它们如何影响事务的正常执行,如何破坏数据库数据 数据转储的概念及分类 数据库的镜像功能 掌握 事务的基本概念和事务的 ...

  6. 数据库系统概论:第十章 数据库恢复技术

    事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术. 10.1 事务的基本概念 事务:是用户定义 ...

  7. 『数据库』你以为删库跑路就能让你老板内(lei)牛(liu)满面--数据库的恢复技术

    数据库从入门到精通:戳我 文章目录 一. 事务的基本概念 1.事务 1.1what's the 事务: 1.2事务的定义 1.2.1 事务的显示定义 1.2.2 事务的隐式定义方式 2.事务的ACID ...

  8. 第十章数据库恢复技术

    第十章数据库恢复技术 10.1_事务 事务的四个特性:原子性.一致性.隔离性.持续性 10.2_故障的种类 事务内部的故障 系统故障 介质故障 计算机病毒 10.3_恢复的实现技术 转储:动态和静态 ...

  9. (数据库系统概论|王珊)第十章数据库恢复技术:习题

    名词解释 事务:是用户定义的一个数据库操作序列.这些操作要么不做,要么全做,是一个不可分割的工作单位.例如在RDBMS中一个事务可以是一条SQL语句或整个程序.事务是数据库恢复和并发控制的基本单位 事 ...

  10. 【数据库】数据库恢复技术

    文来自[风骨散人] 合作整理 文章目录 一. 事务的基本概念 1.事务 1.1what's the 事务: 1.2事务的定义 1.2.1 事务的显示定义 1.2.2 事务的隐式定义方式 2.事务的AC ...

最新文章

  1. 鲸鱼优化算法_Java 代码优化细节之比比谁更细
  2. 【Java 并发编程】线程锁机制 ( 锁的四种状态 | 无锁状态 | 偏向锁 | 轻量级锁 | 重量级锁 | 锁竞争 | 锁升级 )
  3. 静态链表(代码、分析、汇编)
  4. 新手也能学会本地调试微信,natapp 官网映射
  5. [转载] Java标识符 数据类型 常量与变量
  6. rsync替换cp命令显示速度和进度
  7. MongoDB数据库读书笔记
  8. 感知机算法的对偶形式
  9. 安卓新手入门基础知识
  10. 精致露营“风”,“吹”进小家电市场
  11. jsp怎么做柱状图_js实现柱状图
  12. vue如何在地址栏拼接url参数
  13. python中abbab什么意思_ABtest与Python代码-Go语言中文社区
  14. snmp+mrtg实现对局域网内的linuxServer的监控(转)
  15. Xcode自定义代码块
  16. linux 库全局变量_学习嵌入式,做底层还是应用好?嵌入式Linux底层要掌握哪些技能?...
  17. Window系统改装为linux系统
  18. oracle Day1
  19. Qt数据库应用23-个人信息报表
  20. zabbix探究告警触发器Triggers

热门文章

  1. 《Clean Code》 代码简洁之道
  2. 英语中的完成时态的比较
  3. 加速与缓存技术之Varnish
  4. 今天修了一个bug,关于debug日志的问题
  5. MyEclipse服务器远程调试
  6. 注解@PostConstruct与@PreDestroy讲解及实例
  7. 测试linux内核工具,多种测试linux内核的方法
  8. BZOJ3781 小B的询问
  9. element-ui分页器的使用
  10. js基础-12-判断数组和判断对象的方法