NCRE-三级数据库技术-第11章-故障管理

文章适用于计算机等级考试NCRE三级数据库技术,内容来源于网络,文章内容侵删,如果文章和个人的理解有出入,请务必以自己的知识储备为准,仅做参考

11.1 故障管理概述

11.1.1 常见故障类型及解决方案

1.事务内部故障
  • 预期的事务内部故障:事务自身可以发现的,可通过回滚解决
  • 非预期的事务内部故障:事务自身不能处理的,如运算溢出,由系统恢复
2.系统故障

又称软故障:OS或DBS软件漏洞、停电等情况造成的数据不一致情况

  • 解决办法:撤销UNDO未提交事务,重做REDO已提交事务
3.介质故障

又称硬故障:磁盘损坏等导致数据丢失,损失最大

  • 解决方法:使用容错策略,软件容错(备份与恢复),硬件容错(冗余存储)
4.计算机病毒故障
  • 解决方法:防火墙、数据库备份

11.1.2 数据库恢复技术

  • 数据库恢复:将DB从错误状态回溯到某一正确状态
  • 数据库恢复的前提:冗余存储
  • 数据库恢复的关键问题:如何建立冗余数据;如何恢复
  • 建立冗余数据技术:数据备份、登记日志文件、数据库复制、数据库镜像等

11.2 数据转储

11.2.1 转储概念

数据备份:即数据转储,由DBA定期复制数据到其他介质

11.2.2 静态与动态转储

  • 静态转储:转储期间不能执行任何操作,保证一致性,不保证可用性,与事务互斥
  • 动态转储 :与事务并发,保证可用性,不保证一致性
    • 动态转储+日志:记录转储期间事务对数据库的行为,保证可用性与一致性

11.2.3 数据转储方式

  • 完全转储:转储所有数据,转储时时间长,空间大,但恢复时间短
  • 增量转储:转储上次完全/增量转储后更新的文件,时间短,空间小
  • 差量转储:转储上次完全转储后更新的文件

11.2.4 转出方式结合使用

  • 仅用完全转储:空间和时间多,代价大
  • 完全+增量:恢复时间长
  • 完全+差量:恢复时间短

11.3 日志文件

11.3.1 日志文件的概念

DBMS运行中,所有事务的修改操作会登记到日志中

11.3.2 日志文件的作用

  • 用于恢复:事务故障恢复和系统故障恢复必须使用日志
  • 用于转储:在动态转储时必须使用日志,静态转储可选择使用日志

11.3.3 日志文件的格式及内容

  • 以记录为单位的日志 ,需要记录以下内容:
    • 各个事务的开始标记 BEGIN TRANSACTION
    • 各个事务的结束标记:COMMIT OR ROLLBACK
    • 各个事务的所有更新操作
  • 以数据块为单位的日志 ,需要记录以下内容:
    • 各个事务的标识
    • 被更新的数据块

11.3.4 登记日志文件的原则

  • 登记的次序严格按照并行事务执行的时间次序,保证事务对数据库的操作可再现性和正确性
  • 必须先写日志文件,后写数据库

11.3.5 检查点

  • 在恢复数据时需要对日志文件进行扫描,对于大日志文件设置检查点可以减少扫描日志的内容
  • 检查点作用:最大限度地减少数据完全恢复时必须执行的日志部分
  • 检查点引入:在日志中增加检查点记录,新增一个"重新开始文件"
  • 检查点记录的内容:检查点会在建立时记录正在执行的事务清单以及事务对应日志记录的地址
  • 重新开始文件的内容:各个检查点在日志中的地址

11.3.6 基于检查点的恢复步骤

  • 从"重新开始文件"中找到最后一个检查点记录在日志文件的地址,从而找到最后一个检查点记录
  • 由该检查点记录得到当时正在执行的事务清单ACTIVE_LIST
  • 从检查点开始正向扫描文件
  • 对UNDO-LIST中的事务执行UNDO,对REDO-LIST中的执行REDO

11.4 硬件容错方案

11.4.1 概述

从DBMS运行所需的物理环境触发,分析支撑DBS稳定运行的环节,包含以下几种技术:

  • 数据库存储保护技术
  • 服务器容错技术
  • 数据库镜像与容灾技术

11.4.2 磁盘保护技术

  • RAID:廉价冗余磁盘阵列,由多块磁盘构成一个整体,依靠冗余技术来实现数据保护
  • 镜像冗余:把所有数据复制到其他设备,额外开销大
  • 校验冗余:通过校验算法对磁盘数据校验生成校验码并存储到另外的校验盘,实现复杂但占据空间小
  • RAID-0:将多个磁盘合并为大磁盘,不具有冗余性,并行I/O,速度最快
  • RAID-1:将两组以上的N个磁盘相互镜像,速度低,但可靠性高
  • RAID-5:兼顾存储性能、数据安全、存储成本,不存储备份数据,存储校验码到各个磁盘中,至少3块硬盘
  • RAID-10:RAID-0与RAID-1的组合体

11.4.3 服务器容错技术

  • 引入服务器容错原因:解决服务器硬件异常问题
  • 服务器容错技术简介:常见的是双机热备(Active-Standby),采用两台相同的服务器,共享存储设备,两台服务器间使用使有网络进行心跳检测

11.4.4 DB镜像与DB容灾

  • DB镜像原因:其他恢复模式需要DBA及时、正确地转储数据库
  • DB镜像简介:提高DB可用性,自动将数据进行复制
  • 双机互备模式:两台均为工作机,互相监视对方情况
  • 双机热备模式:一台工作一台备份,备份机监视工作机情况

11.4.5 SQL SERVER数据库镜像

将数据库事务处理从一个DB转移到不同的DB中,该镜像是一个备用的复制,不能直接访问,有高安全性模式及运行模式,有以下三种实现方式

  • 高可用性:两台服务器同步事务写入,支持自动错误恢复
  • 高保护性:两台服务器同步事务写入,只能手动错误恢复
  • 高性能:两台服务器写入不同步,只能手动错误恢复
相关推荐
晓蓝WQuiet2 分钟前
《鸟哥的Linux私房菜》笔记 第七至十六章
linux·运维·笔记
Achou.Wang2 分钟前
Selecting channels:Go 并发里的“多路开关”
服务器·数据库·golang
山岚的运维笔记5 分钟前
Bash 专业人员笔记 -- 第 11 章:`true`、`false` 和 `:` 命令
linux·运维·服务器·开发语言·笔记·学习·bash
ccyl016 分钟前
UOS server 版(摩尔X300显卡)服务器安装显卡驱动
运维·服务器
海兰8 分钟前
使用 OpenTelemetry 与 Elastic APM 追踪 MCP 服务器工具调用
运维·服务器·elasticsearch·wpf
青天飞叶10 分钟前
2026年高性能推理标杆:DreamZero推理服务器深度解析(延迟低至1.2ms,吞吐量提升300%)
运维·服务器
m0_6091604914 分钟前
Go语言Beego框架如何用_Go语言Beego框架入门教程【高效】
jvm·数据库·python
未若君雅裁2 小时前
MySQL-MVCC核心原理-版本链ReadView与可见性判断
数据库·mysql
KaMeidebaby6 小时前
卡梅德生物技术快报|骆驼纳米抗体:从原核表达、高通量测序到分子对接全流程实现
前端·数据库·其他·百度·新浪微博
2301_783848659 小时前
优化文本分类中堆叠模型的网格搜索性能:避免训练卡顿的实战指南
jvm·数据库·python