计算机三级数据库技术备考笔记(十一)

第十一章 故障管理

  • 故障管理概述
    • 故障类型及其解决方法
      • 事务内部的故障
        • 预期的事务内部故障
          • 预期的事务内部故障是指可以通过事务程序本身发现的事物内部故障。(校园卡消费,学生卡钱减少,学校账户钱增加)
          • 如果发生了预期的事务内部故障,可以通过将事务回滚,撤销其对数据库的修改,从而使数据库回到一致性的状态。
        • 非预期的事务内部故障
          • 非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障,并发事务死锁故障、违反了某些完整性限制而导致的故障等。由于事务内部的故障大部分属于此类,所以以后的事务故障仅指这类故障。
          • 恢复程序必须强行回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改,使数据库恢复到该事务运行之前的状态。事务故障的恢复是由系统自动完成的,对用户是透明的。
      • 系统故障
        • 系统故障又称软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电等情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类故障影响正在运行的所有事务。
        • 系统故障将导致易失性存储器内容的丢失,而非易失性存储器内容仍然完好。
        • 当数据库发生系统故障时,容错对策是在重新启动系统后,撤销(UNDO)所有未提交的事务,重做(REDO)所有已提交的事务以达到容错目的,
      • 介质故障
        • 介质故障又称硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏,强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障。
        • 这类故障可能导致物理存储设备损坏,使数据库文件及数据全部丢失。所以,虽然它比前几类故障发生的可能性小,但破坏性最大,
        • 介质故障的容错对策采用两种方式,一种是软件容错,一种是硬件容错。
          • 软件容错是使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。不能恢复全部
          • 硬件容错目前常用的方法是采用双物理存储设备,如双硬盘镜像,使两个硬盘存储内容相同,当一个硬盘出现介质故障时,另一个硬盘中的数据没有被破坏,从而达到数据库完全恢复的效果。
      • 计算机病毒故障
        • 计算机病毒是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以破坏数据库文件为主)。
    • 数据库恢复技术概述
      • 数据备份
      • 登记日志文件
      • 数据库复制
      • 数据库镜像
  • 数据转储
    所谓数据转储,就是指数据库管理员(DBA)或数据库管理系统定期复制数据库,并将复制得到的数据存放到其他介质中的过程,数据转储也称为数据备份。
    • 静态转储和动态转储
      • 静态转储,在静态转储过程中系统不能运行其他事务,不允许在转储期间对数据库有任何的存取、修改活动,即转储前后系统必须处于一个一致性的状态
      • 动态转储,是指允许转储操作和用户事务并发执行,即允许在转储过程中对数据库进行存取和修改操作。
    • 数据转储机制
      • 完全转储,完全转储是对数据库中所有数据进行转储。这种转储方式需占用较多的时间和空间,但在系统失败时恢复的时间较短。完全转储可用作系统失败时恢复数据库的基础
      • 增量转储。增量转储只复制上次转储后发生变化的文件或数据块。转储软件将检查文件或数据块的状态,以确定文件或数据块是否被修改,如果已经被修改,则将这些文件或数据块复制到转储设备。增量转储所需的时间和空间都比较短,但增量转储数据只能和完全转储配合才能对数据库进行恢复。增量转储的恢复时间要比仅使用完全转储要长
      • 差量转储。差量转储是对最近一次数据库完全转储以来发生的数据变化进行转储,差量转储也被称为差异转储。差量转储和完全转储相比速度快,占用较小的空间;差量转储和增量转储相比,速度慢、占用空间较多,但恢复速度比增量转储快
    • 多种转储方法结合使用
      • 仅使用完全转储。仅使用完全转储会产生大量数据移动,占用时间和空间较多,对数据库性能可能产生较大影响,这种方法代价比较大
      • 完全转储加增量转储。完全转储加增量转储是每隔一段时间进行一次完全转储,在完全转储中间执行多次增量转储,这样避免了全部使用完全转储所导致的大量数据移动。
      • 完全转储加差量转储。由于完全加增量方法中数据恢复很困难,所以有了完全转储加差量转储方法。尽管差量转储比增量转储移动和存储更多的数据,但恢复操作简单,恢复时间也较短
  • 日志文件
    • 日志文件的概念
      日志文件记录每个事务对数据库的修改操作。数据库系统在运行过程中,将所有事务的修改操作登记到日志文件中。
      • 日志文件的具体作用
        • 1. 事务故障恢复和系统故障恢复必须使用日志文件
          • 利用日志文件进行故障恢复时有两个基本操作:UNDO(T)和REDO(T)。
            • UNDO(T)的作用是撤销事务T,其具体步骤为:
            • ①反向扫描日志文件,找到需要销的事务的更新操作
            • (2)对事务7的更新操作执行逆操作,即将日志文件中"更新前的值"写人数据库。如果日志记录中是插入操作,撤销时就做删除操作;如果日志记录中是删除操作,撤销时就做插入操作;如果日志记录中是修改操作,撤销时就用修改前的值代替修改后的值:
            • ③继续反向查找该事务的其他更新操作,并执行相应的逆操作
            • 4重复执行步骤3,直至遇到该事务的开始记录
          • 事务故障恢复,做撤销操作
          • 系统故障恢复
        • 2. 在动态转储方式中必须建立日志文件
        • 3. 在静态转储方式中,也可以使用日志文件
    • 日志文件的格式与内容
      • 以记录为单位的日志文件
      • 以数据块为单位的日志文件
    • 登记日志文件的原则
      • ① 登记的次序严格按并行事务执行的时间次序
      • ② 必须先写日志文件,后写数据库
    • 检查点
      • 检查点的作用
        检查点最大限度地减少了数据库完全恢复时所必须执行的日志部分。
      • 检查点的引入
        • 检查点记录的内容包括:
          • ①建立检查点时刻所有正在执行的事务清单
          • ②这些事务最近一个日志记录的地址。
        • 动态维护日志文件的方法是周期性地执行如下操作:建立检查点,保存数据库状态。
          • ① 将当前日志缓冲中的所有目志记录写人盘的目志文件上;
          • ② 在目志文件中写人一个检查点记录;
          • ③ 将当前数据缓冲的所有数据记录写人磁盘的数据库中;
          • ④ 把检查点记录在日志文件中的地址写人一个“重新开始文件;
      • 基于检查点的恢复步骤
        • (1)从“重新开始文件"中找到最后一个检查点记录在目志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
        • (2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。
          这里要建立两个事务队列:
          ①DUNDO-LIST:需要执行 UNDO操作的事务集合
          ②REDO-LIST:需要执行REDO操作的事务集合
          把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空
        • (3)从检查点开始正向扫描日志文件。
          ① 如有新开始的事务T,把T暂时放入UNDO-LIST队列。
          ② 如有提交的事务T,把T从UNDO-LIST队列移到REDO-LIST 队列
          直到日志文件结束。
        • (4)对UNDO-LIST中每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。
  • 硬件容错方案
    • 概述
      • 硬件容错的方案需要从数据库系统运行所需要的各种环境出发,分析支撑数据库系统运行的环节,例如机房的电力、机房空调环境、网络,存储、服务器,综合考虑,否则某一个环节出现故障都可能导致数据库系统不可运行。
    • 磁盘保护技术(RAID)
      • 所谓RAID就是廉价冗余磁盘阵列,它是由多块盘构成的一个整体,但这并不等于是简单的磁盘容量叠加,而是相对于其他存储设备在容量、管理、性能,可靠性和可用性上都有了进一步的提高。
      • RAID的冗余技术主要有两个
        • 镜像冗余
          镜像冗余就是把所有的数据复制到其他的设备上或其他地方。这个技术实现起来很简单,但是额外开销却很大,需要更多的盘,控制器和电缆
        • 校验冗余
          校验冗余就是通过对成员磁盘上的数据执行异或(XOR)操作,得到其校验值,并存放在另外的校验磁盘上
      • 磁盘阵列RAID的级别分类
        • RAID0:并行写出,优点:采用数据分块、并行传送方式,能够提高读写速度;但RAID中存储空间没有冗余,对系统的可靠性没有任何提高,任一硬盘介质出现故障时,数据将无法恢复。
        • RAID1:通常也被称为Mirror,RAID中的硬盘分成相同的两组,互为镜像,当其中一块磁盘出现故障时,可以利用其镜像上的数据恢复,从而提高系统的容错能力。优点:并行传输,高读写速度,缺点:硬盘利用率低,冗余度为50%
        • RAID5:RAID5也采用数据分块并行传送的方法,但它在数据分块之后计算它们的奇偶校验和,然后把分块数据和奇偶校验信息一并写到硬盘阵列中。在写入时RAID5把奇偶校验信息交叉写到阵列中的每个硬盘上
        • RAID10:RAID10是一个RAD0与RAID1的组合体,它继承了RAID0的快速和RAID1的安全。RAID10的冗余度为50%,同时读写速度均提高。
    • 服务器容错技术
      • 服务器容错技术一般是采用两台相同的服务器,两台服务器共享存储设备,其中一台服务器运行数据库系统,数据库数据存储在存储设备中。两台服务器之间使用专用的网络进行检测,运行服务器出现问题时,由备用服务器接管数据库。由于数据库数据存储在存储设备中,因此在备用服务器接管数据库业务时,数据库数据保持一致状态。此种工作模式一般称为AeliveStandby模式

    • 数据库镜像与数据库容灾技术
      • 数据库镜像是一种用于提高数据库可用性的解决方案,它根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上
      • 数据库镜像有许多优点,具体如下:
        • 数据库镜像提供完整或接近完整的数据冗余,增强数据保护功能
        • 发生灾难时,数据库镜像可快速使数据库的备用副本提供服务,使数据不会丢失,提高数据库的可用性
        • 提高镜像数据库在升级期间的可用性,
      • 数据库镜像分类
        • 双机互备援模式
          所谓双机互备援就是两台主机均为工作机,在正常情况下,两台工作机均为信息系统提供支持,并互相监视对方的运行情况。
        • 双机热备份模式
          所谓双机热备份就是一台主机为工作机,另一台主机为备份机在系统正常运行情况下,工作机为信息系统提供支持,备份机监视工作机的运行情况(工作机也同时监视备份机是否正常,有时备份机因某种原因出现异常,工作机会通知系统管理员解决,确保下一次切换的可靠性)
        • 工作机切换时机
          • 系统软件或应用软件造成服务器宕机。
          • 服务器没有宕机,但系统软件或应用软件工作不正常
          • SCSI卡损坏,造成服务器与磁盘阵列无法存取数据,
          • 服务器内硬件损坏,造成服务器岩机。
          • 服务器不正常关机
      • 工作方式
      • 数据库镜像提供了三种实现方式:
        • 高可用性:两台服务器上同步事务写人,并支持自动错误恢复
        • 高保护:两台服务器上同步事物写人,但是错误恢复是手工的
        • 高性能:两台服务器上的写人可以不同步的,因此在性能上有所提高,只允许手工的错误恢复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值