当前课程知识点:高级数据库系统 >  第三讲 数据管理与恢复技术 >  1. 数据库的故障及可恢复模型 >  3-1. 数据库的故障及可恢复模型

返回《高级数据库系统》慕课在线视频课程列表

3-1. 数据库的故障及可恢复模型在线视频

3-1. 数据库的故障及可恢复模型

下一节:3-2. 事务及日志的相关概念

返回《高级数据库系统》慕课在线视频列表

3-1. 数据库的故障及可恢复模型课程教案、知识点、字幕

同学们好,今天我们来开始讲第三部分,数据库的故障恢复

我们知道任何一个系统在使用的过程当中都会出现问题

数据库管理系统在使用的过程当中也会出现问题

那么当数据库管理系统出现问题的时候我们该如何来进行恢复

把一个数据库恢复到一个正确的状态,这是我们今天要讲的内容

也是数据库管理系统里面比较核心的知识点

这部分我们主要分为三个部分

第一个,要向大家来介绍一些数据库的故障与恢复

第二部分,我们来讲一下事务和日志的基本概念

然后第三部分,我们来讲一下,基于日志的恢复机制

首先我们来介绍数据库的故障与恢复方法

那么数据库管理系统在使用过程当中都会出现哪些故障呢

主要有这样几种故障出现

第一种故障就是错误的数据输入

这种故障的来源,主要是指

我们的数据库应用系统的程序设计不严谨

它在这个数据检查机制上做的不够,覆盖的不够全面

比如说我为某一个客户的身份证,输入他的身份证号码的时候

如果我对身份证号码数据类型以及输入的位数,没有一个严格的界定

这样的话呢,使用者在输入这个身份证号码的时候

那可能会输入少的位数或者多的位数

或者是输入不同的数据类型,错误的数据类型

那么这个时候有可能就会导致数据库系统的一个崩溃

那么这是错误的数据输入导致的一个数据故障

这种数据故障,它在恢复的过程,比较简单一点

那就是我们呢,需要对于数据库系统的程序进行检查

然后呢,我们对它进行修改就可以了

所以这个是比较简单,也是造成损失最少的这样一种错误输入

那么第二种呢,我们把叫做系统故障

那么这个系统故障,主要指什么呢

就是当我们正在使用数据库管理系统进行操作的时候

突然可能是断电,或者是突然我们不知道什么原因,系统就崩溃

而这种崩溃主要的一些原因,可能是因为

比如说内存的溢出或者是其他硬件的一些故障

那么这样的话呢,我们把这样的一些错误都叫做系统错误

也就是DBMS在使用过程当中产生的错误

那么这种系统错误我们采用什么样的方式来进行恢复呢

我们使用DBMS里面的恢复子系统来进行恢复

这个也是我们后面要讲的内容

那么第三种故障呢,指的是介质故障

也就说我们存储数据的介质磁盘产生了故障,发生了错误

比如说我的磁盘B,那么损坏了或者磁头损坏了

也有可能我存储数据的磁盘的某一扇区或者是某一个磁道损坏了

那么使得我的这个数据读不出来

是造成这个数据库的这样的一些数据的一些错误或者数据库无法启动

这叫介质的故障,那么对于介质故障

一般的来说呢,我们会采用一种预防措施

这种预防措施呢,我们使用的是一种磁盘阵列的冗余存储技术

我们把它叫做RAID,RAID技术总共分为六级

它会根据不同的这样一种安全保障的需要

从低到高,不同的企业可以根据它们自己的安全的需求

来使用不同的RAID技术,那么这个是介质故障

那么再有一个呢,就是灾难性的故障

这种故障这个损坏就比较大,你比如说突然发生了火灾,或者是发生了地震

你比如说我们这个汶川地震,是吧

这个地震一发生,就会造成整个区域它的这个瘫痪

你比如说汶川地震的时候,肯定银行系统可能就崩溃了,就瘫痪了

这个时候,我们说用RAID技术也没有办法,也无能为力了

那怎么办呢,一般情况呢,就说灾难对付灾难性的这种故障

我们数据库管理系统也是一样,就是我们要采用一种预防措施

我们可以采用远程备份,你比如说,中国建设银行,是吧

它在汶川那个地方它是有这个分支机构的

它的数据除了在汶川本身这个地域里面有存储之外

它在远程比如说它在北京或者是上海或者其他的一些大城市里面

比如说最近一点的可能是这个四川,比如说成都,是吧

它都会有一些远程的这样一种备份机制

那么一旦这种灾难性的故障发生之后,我们要对数据库进行恢复

那显然就是从远程把数据再重新拷回来进行系统的恢复

那么这是灾难性的故障

今天我们来给大家要讲的呢,主要是第三个,就是系统故障

也就说当我们正在使用这个数据库管理系统的时候,突然性的崩溃

这个时候我们怎么样能把这个数据恢复到一个正确的这样一种状态

这个是保证数据库管理系统它的可用性的一种非常重要的内容

它的恢复机制用的就是事务和日志

事务这个概念,我们除了这一章要使用之外

我们在下一章并发控制里面也要用的到

所以呢,今天我们要把事务给大家来进行一个介绍

它是整个数据库系统的一个灵魂

所以下面我们就来看一下,第二节,事务和日志的概念

事务在这个本科的数据库管理系统里面,我们曾经给大家介绍过

就说它实际上指的是一系列的操作集合

就像以前我们这个给大家举过的例子

就比如说我要去银行取钱,那么我去银行取钱实际上要分很多种操作

比如说我首先要插入我的银行卡,是吧

然后我要输入我的账户和密码

然后接下来我要进行取钱,然后再退出这样的一些操作

可能中间呢,我们也要做一些查询

比如说我查一下我账户的余额是多少,是吧

也有可能会进行一些其他的,比如说明细的查询或者其他一些操作

这些操作从你插入银行卡到你拔出银行卡的时候

中间的这些操作它是一系列的操作

这个操作实际上是一个单元,我们把这样的一个操作单元叫做一个事务

这个操作单元为什么叫一个事务呢,是因为它有这样的一些特性

第一个特性呢,就是原子性

也就说这个操作系列它是一个整体,不可分割

所有的操作命令要么全部执行,要么就一个也不执行

这就是它的原子性,另外一个呢,就是它的一致性

也就说我整个的一系列的操作,那么我执行完之后

一定使数据库从一个正确的状态转化到另外一个正确的状态

这是一致性的要求,那么另外一个就是隔离性

那么隔离性是指什么呢,就说

如果我这个数据库管理系统目前支持,比如说有100个用户

很多个用户都来使用它,那么它再进行一个并发的操作

那么在并发的时候,每一个用户在操作的时候它只应该是感觉到只有自己在执行

而没有别人来对它进行干扰,这就是一个隔离性

再有一个就是持久性,那么持久性就是指我事务一旦执行

它对数据库造成的改变是永久的

这就是事务的基本的特点,也是事务的基本概念

我们在数据库管理系统里面呢,如果用SQL来写事务的话

它是由begin,transaction和commit

或者是reback这样两条命令来界定起来的一系列的对数据库的一些操作集合

这是事务的概念,那么事务我们因为要对数据库进行恢复

我们要对数据库进行恢复的话

我们必须得了解事务在数据库在执行的过程当中

那么它的状态是什么样子呢

我们用这张图来给大家说一下,事务的执行状态

那么事务一旦执行到begin,transaction,也就说它一旦提交之后

然后它只要执行到begin,transaction这条命令的时候

那么我们这个事务就算激活了

那么所以呢,它就处于活动状态

那么处于活动状态的事务呢,它有两个

后续的结果状态会有两个

一个呢,就是说,它有可能,比如说刚一开始执行就会出现故障

那么这个时候,事务出现故障它就进入一个失败的状态

它没有执行成功,可能第一条语句,比如说它可能被零除了

或者是产生了什么故障,那么它呢,就会进入一个失败的状态,执行不下去

那么另外一个呢,就是它能够顺利执行

而且执行到整个事务的最后一个语句,那么执行完事务的最后一个语句呢

事务就进入了部分提交状态,那么就说明什么呢

那么这个事务基本上已经成功

但是呢,目前它对数据库的改变,只是在缓冲区里面,还没有转移到磁盘上

只有什么时候,就说当它完成数据库更新操作

并且已经提交了它的提交指令的时候

这个时候我们才说这个事务目前处于提交状态

也就是它把对于数据库的更新,那么已经完全写到磁盘上去

这个时候呢,我们说这个事务目前处于提交状态

处于部分提交状态的事务

实际上它可以向提交状态去走,也可以向失败状态去走

你比如说,它已经执行完最后一条指令,马上就要写盘

那实际上这个时候有可能会出现一些错误

也可能就会导致事务的终止

这个时候事务就转换到失败状态去了

那失败的状态要进行回滚和终止,回滚的事务我们让它进入终止状态

而提交的事务呢,也就说我已经顺利的把磁盘进行了更新

这个时候事务进行了提交状态

进入提交的状态相当于成功的事务

从这个执行过程来看,那我们说事务在执行的过程当中

主要有这样几种状态,第一个是活动状态,也就是初始状态

然后接下来就是它的部分提交状态,失败状态

提交状态或者是终止状态,这样五种状态

那么这就是大家一定要清楚的

整个事务在活动过程当中它处的这么几个比较重要的点

事务我们说,它是由谁来执行的,那么它的工作原理是什么样子的呢

我们在PPT上给出了,这个整个数据库管理系统里面的几大重要的核心部分

我们在第二章给大家讲过关于查询的处理

这个呢,是由查询处理器来做

但实际上查询处理器它是受谁来支配呢,就说它怎么接触到的命令呢

不是说用户我写了一个SQL语句,一提交就直接给查询处理器

而是什么呢,用户提交的SQL语句,或者说它提交的一系列的SQL语句

它首先提交给的是事务管理器

然后由事务管理器来调度这些命令

它把这个命令呢,可以向查询处理器进行这个提交

它把它调度给查询处理器

查询处理器接受到事务管理器给的一些SQL命令之后

它就开始进行执行,那么当它给查询处理器一些命令的时候

同时它还要通知日志管理器,也就说它要告诉日志管理器说

我现在已经调度了一个什么样的命令给查询处理器

所以你的日志里面呢,需要对这样一个命令来进行一个记录

这就是它的一个操作过程,那么当然在这个过程当中

比如说我查询处理器可能我因为要写盘,或者要去读盘

它会把这些命令要通过事务管理器来传送给缓冲区管理器

缓冲区管理器再去读或者是写这个数据,是这样

这个数据不论是数据库里的数据还是日志数据

当然都是通过缓冲区管理器来执行的

它呢,来写盘或者读盘

高级数据库系统课程列表:

第一讲 数据文件的组织与索引技术

-1. 数据文件的组织

--1-1 数据文件的组织

-2. 索引的概念与分类

--1-2 索引的概念与分类

-3. B+树索引

--1-3 B+树索引(1)

--1-3 B+树索引(2)

-4. 散列索引

--1-4 散列索引

-5. 小结

--html

-6.练习--作业

第二讲 查询处理及优化

-1. 查询代价的测量及查询处理过程概述

--2-1 查询代价的测量及查询处理过程概述

-2. 关系操作的基础算法

--2-2. 关系操作的基础算法(1)

--2-2. 关系操作的基础算法(2)

-3. 查询表达式的运算

--2-3 查询表达式的运算

-4.查询优化机制

--2-4 查询优化机制

-5.小结

--html

-6.练习--作业

第三讲 数据管理与恢复技术

-1. 数据库的故障及可恢复模型

--3-1. 数据库的故障及可恢复模型

-2. 事务及日志的相关概念

--3-2. 事务及日志的相关概念

-3. 基于undo日志的恢复机制

--3-3. 基于undo日志的恢复机制

-4. 基于redo日志的恢复机制

--3-4. 基于redo日志的恢复机制

-5. 小结

--html

-6. 练习--作业

第四讲 事务并发调度的相关概念

-1. 并发调度及相关概念

--4-1. 并发调度及相关概念

-2. 可串行化调度

--4-2. 可串行化调度

-3. 冲突可串行化调度

--4-3. 冲突可串行化调度

-4. 小结

--html

-5. 练习--作业

第五讲 基于封锁的并发控制机制

-1. 锁的概念及封锁的原理

--5-1. 锁的概念及封锁的原理

-2. 两阶段锁协议

--5-2. 两阶段锁协议

-3. 多粒度锁及意向锁

--5-3. 多粒度锁及意向锁

-4. 死锁的处理

--5-4. 死锁的处理

-5. 小结

--html

-6. 练习--作业

第六讲 并发控制的其它机制

-1. 基于时间戳的调度

--6-1. 基于有效性检验的调度

-2. 基于有效性检验的调度

--6-2. 基于时间戳的调度

-3. 小结

--html

-4. 练习--作业

第七讲 分布式数据库基本概念

-1. 分布式数据库系统的产生及定义

--7-1. 分布式数据库系统的产生及定义(1)

--7-1. 分布式数据库系统的产生及定义(2)

-2. 分布式数据库系统的模式结构与功能结构

--7-2. 分布式数据库系统的模式结构与功能结构

-3. 分布式数据库系统中存在的技术问题

--7-3. 分布式数据库系统中存在的技术问题

-4. 小结

--html

-5. 练习--作业

第八讲 分布式数据库的设计

-1. 分布式数据库的设计方法、内容和目标

--8-1. 分布式数据库的设计方法、内容和目标

-2. 自顶向下方法构建数据库

--8-2 . 自顶向下方法构建数据库

-3. 数据的分片和分布设计

--8-3. 数据的分片和分布设计(1)

--8-3. 数据的分片和分布设计(2)

-4. 分布式数据库设计案例讲解

--8-4. 分布式数据库设计案例讲解(1)

--8-4. 分布式数据库设计案例讲解(2)

--8-4. 分布式数据库设计案例讲解(3)

-5. 小结

--html

-6. 练习--作业

第九讲 分布式数据库查询机制

-1. 分布式查询处理的步骤和代价

--1. 分布式查询处理的步骤和代价

-2. 基于等价变换的查询优化

--2. 基于等价变换的查询优化

-3. 基于半连接算法的查询优化

--3. 基于半连接算法的查询优化

-4. 基于直接连接算法的查询优化

--4. 基于直接连接算法的查询优化

-5. 小结

--html

-6. 练习--作业

第十讲 分布式数据库的事务管理及恢复机制

-1. 分布式事务概述

--1. 分布式事务概述

-2. 分布式事务的两阶段提交协议

--2. 分布式事务的两阶段提交协议

-3.分布式并发控制概述

--3.分布式并发控制概述

-4. 并发控制的加锁机制

--4. 并发控制的加锁机制

-5. 并发控制的时标技术

--5. 并发控制的时标技术

-6. 小结

--html

-7.练习--作业

高级数据库技术期末试题

-试题--作业

3-1. 数据库的故障及可恢复模型笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。