考研复试数据库原理课后习题(十)——数据库恢复技术

2023-10-28

数据库恢复技术

1.事务是用户定义的一个数据库操作序列,这些操作要么全做,要么不做,是一个不可分隔的工作单位。

事务具有四个特性(ACID):原子性、一致性、隔离性、持续性

  • 原子性:事务是数据库的逻辑工作单位,一个事务中包括的操作要么全做,要么不做
  • 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
  • 隔离性:一个事务的执行不能被其他事务所干扰。
  • 持续性:持续性是指一个事务已经提交,那么他对数据库的改变就是永久的,接下来的任何其他操作或者故障不应该对其执行结果有任何影响。

故障恢复可以保持事务的原子性和持久性。

2.为什么事务正常结束时会影响数据库的正确性?

事务执行的结果必须是试数据库从一个一致性状态到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就可能处于不正确的状态,或者说是不一致的状态。

3.登记日志文件时为什么必须先写日志文件,后写数据库?

把对数据库的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只执行了一个。
如果先写了数据库修改,而没有在运行记录中登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是执行了一次UNDO操作,并不会影响数据库的正确性。所以要先写日志文件,然后再写数据库的修改。

4.针对不同的故障,试给出恢复的策略和方法

事务故障的恢复步骤是:

  • 反向扫描文件日志,查找该事务的更新操作。
  • 对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库
    直至读到此事物的开始标记,该事务故障的恢复就完成。
    系统故障的恢复:
  • 正向扫描日志文件,找出再故障发生前已经提交的事务队(REDO)和未完成的是事务队列(UNDO)
  • 对未完成的事务队列中的各个事务进行UNDO处理
  • 对已经提交的事务队列中的各个事务进行REDO处理
    介质故障的恢复故障恢复步骤:
  • 转入最新的数据库后备副本(离故障发生时最近时刻的转储副本),使数据库恢复到最近一次转储时的一致性状态。
    装入转储结束时刻的日志文件副本。
    启动系统恢复命令,由DBMS完成恢复功能。

5.什么时检查点记录,检查点记录包括哪些内容?

检查点时刻所有正在执行的事务清单,如T1和T2
这些事务的最近一个日志记录的地址,如D1、D2
在这里插入图片描述

在这里插入图片描述

6.具有检查点的恢复技术有什么优点?试举一个具体例子加以说明。

利用日志技术进行数据库恢复时,恢复子系统必须搜索整个日志,这将消耗大量的时间。此外,需要REDO处理的事务实际上已经将他们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量的时间。
例如:
在这里插入图片描述

在采用检查点技术之前,恢复时需要从头扫描日志文件,而利用检查点技术只需要从tc开始扫描日志,这就缩短了扫描日志的时间。
事务T3的更新操作实际上已经写到数据库中了,进行恢复时没有必要再进行REDO处理,采用检查点技术做到了这一点。

7.试述使用检查点方法进行恢复的步骤。

  • 在重新开始文件(5题图)中,找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
  • 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。建立两个事务队列:
    UNDO-LIST:需要执行undo操作的事务集合
    REDO-LIST:需要执行redo操作的事务集合
    把ACTICVE-LIST暂时放入UNDO-LIST队列,REDO队列暂时为空。
  • 从检查点开始正向扫描日志文件
    如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列。
    如有提交的是事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到文件结束。
  • 对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。

8. 什么是数据库镜像?他有什么用途?

数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据一致性。

数据库镜像的用途:

  • 用于数据库恢复。当出现介质故障时,镜像磁盘可继续使用,同时DBMS自动利用镜像磁盘数据进行数据库的 恢复,不需要关闭系统何和重装数据库副本。
  • 提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排他锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

考研复试数据库原理课后习题(十)——数据库恢复技术 的相关文章

随机推荐

  • 微信小程序组建监听observers

    一 作用 用于监听和响应任何属性和数据字段的变化 二 限制 1 小程序基础库2 6 1开始支持 2 只能在自定义组建中使用 再页面中无法使用 三 使用 1 自定义组件的properties中的数据属性 Component 组件的属性列表 d
  • vue中使用element-ui表格table组件错行出现场景和解决方案

    在项目开发中表格错行的问题经常出现 现在整理如下 希望共同学习进步 1 element ui表格table表格内容错行 1 情况一 表格中有el tooltip时候 数据过长的时候hover 往上滑动会出现错行 解决方案 固定高度或者给出
  • 二叉树实验报告

    实验报告 实验题目 二叉树 实验目的 1 熟悉二叉树的结点类型和二叉树的基本操作 2 掌握二叉树的前序 中序和后序遍历的算法 3 加深对二叉树的理解 逐步培养解决实际问题的编程能力 基本要求 1 编写程序bitree cpp实现ADTBiT
  • java 基础重学(三)-源码阅读

    1 String 1 String定义为 final 这说明String不可继承 再看下面 String类的主力成员字段value是个char 数组 而且是用final修饰的 final修饰的字段创建以后就不可改变 是线程安全的 publi
  • python爬取软件内数据_各种数据爬取工具爬虫合集整理

    却道天凉好个秋 不用编程敲代码的爬取数据的工具合集 简单上手易用的爬虫脚本工具软件汇总 1 工具软件类 Microsoft Excel excel也可以爬一些规整的表格数据等 没想到吧 八爪鱼 一款可视化免编程的网页采集软件 可以从不同网站
  • osgexp安装与使用

    osg系列文章目录 文章目录 osg系列文章目录 前言 一 下载osgexp和3d max 二 osgexp安装 三 编译OSGExp 参考 前言 3ds max文件导出osg或者ive格式 一 下载osgexp和3d max 1 首先下载
  • 列举ADO.NET在操作数据库时,常用的对象及作用。

    connection 连接对象 用于对数据库的连接操作 参数是连接字符串 command 命令对象 用于执行对数据库的操作 参数是连接字符串或存储过程 也必须传入连接对象实例 SqlDataReader 数据读取对象 用于读取操作 Read
  • 【BP时序预测】基于BP神经网络的时间序列预测附matlab完整代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 基于BP神经网络的时间序列预测是一种常用的预测方法 它可以通过训练神经网络模型来学习
  • Ubuntu 18.04安装RTX2080Ti显卡驱动

    Ubuntu 18 04 2080Ti安装显卡驱动 PPA仓库安装 网上的方法太多了 尝试了几种各种失败 这里记录一种本人电脑有效的方法 有的电脑需要先卸载Ubuntu 自带的驱动 sudo add apt repository ppa g
  • unity 获取鼠标停留处UI

    修改新华社项目 需要为鼠标停留加个标示 暂定为旋转UI 的fillAmount 期间需要获得UI名字 因为名字太多了 个别环影响 所以找到了这个工具方法
  • 如何在你的windows系统电脑里面设置个人私密空间

    1 前几天我在网上搜了一下windows系统的垃圾清理软件看看哪个好用 2 诶 还别说 还真的找到了一个好用的 他就是 完美卸载 最麻烦就是这些杀毒 清理类的软件 所以我下载了个不需要安装的绿色版 3 我要介绍的就是里面的 数据保险箱 界面
  • 利用SCCM进行横向移动

    01SCCM介绍 SCCM全名为System Center Configuration Manager 从版本1910开始 微软官方将其从Microsoft System Center产品移除 重新命名为Microsoft Endpoint
  • 9种基本数据类型

    9种基本数据类型以及封装类 基本类型 大小 默认值 封装类 byte 1 byte 0 Byte short 2 short 0 Short int 4 0 Int Long 8 0L Long float 4 0 0f Float dou
  • 跳过交货单ATP CHECK的方法

    物料启用ATP CHECK会影响到交货 对于那些启用了ATP CHECK而又没有做合理规划的系统 想要搞清楚ATP是如何计算的 我只能说呵呵 你会发现批次拆分 过账的BAPI会有莫名其妙的 报错 搞不清楚库存里明明有东西为什么还不让交货 这
  • 【深度学习】数据集打标签:生成train.txt和val.txt

    当我们在Github上下载一篇论文的代码后 我们如何在自己的数据集上进行复现呢 准备自己的数据集 这是在百度爬的十分类的服装数据集 其中train文件夹下每类大概300张 val文件夹下每类大概100张 总共在4000张左右 设置目录 我们
  • mysql二进制文件下载教程_mysql 二进制文件增量备份

    1 首先在my cnf下添加二进制文件路径 windows下文件名称为my ini 在 mysqld 下添加 log bin mysql bin 2 centos下默认安装mysql 5 6 数据默认文件夹下为 var lib mysql
  • (新手向)在matlab中运用SMOTE和前馈神经网络对wilt(枯萎)数据集进行机器学习

    目录 一 概述 二 数据集描述 三 方法 数据预处理 SMOTE算法 Feed forward网络 四 结果 后记 2021年5月 一 概述 近日 有位同学因为搞不懂matlab中的神经网络来问我怎么做 我说你把数据集发来给我看看 我稍微一
  • apt安装包报错解决办法:下列软件包有未满足的依赖关系,依赖。。。但是。。。正要被安装

    apt安装包报错解决办法 下列软件包有未满足的依赖关系 依赖 但是 正要被安装 文章目录 apt安装包报错解决办法 下列软件包有未满足的依赖关系 依赖 但是 正要被安装 几种可能的情况 1 镜像源版本代码的问题 1 查看版本代码 2 修改镜
  • Redis设计与实现---Sentinel

    Sentinel Redis的高可用性解决方案 由一个或多个Sentinel实例组成的系统可以监视任意多个主服务器 以及这些主服务器属下的所有从服务器 并在被监视的主服务器进入下线状态时 自动将下线主服务器属下的某个从服务器升级为新的主服务
  • 考研复试数据库原理课后习题(十)——数据库恢复技术

    数据库恢复技术 1 事务是用户定义的一个数据库操作序列 这些操作要么全做 要么不做 是一个不可分隔的工作单位 事务具有四个特性 ACID 原子性 一致性 隔离性 持续性 原子性 事务是数据库的逻辑工作单位 一个事务中包括的操作要么全做 要么