数据库恢复技术

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 数据库恢复技术

1.事务:

是用户定义的一个数据库操作序列,是一个不可分割的工作单位(原子性) 一般的,一个程序中被包含多个事务。

2.事务的特性:(ACID)

  • 原子性:事务中的操作要么都做,要么都不做
  • 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
  • 隔离性:一个事物的执行不能被其他事务干扰,并发执行的各个事务之间不能互相干扰
  • 持续性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

3.破环ACID的可能:

  • 多个事务并发运行时,不同事务的操作交叉执行
  • 事务在运行过程中被强行停止

4.数据库恢复:

把数据库从错误状态恢复到某一已知的正确状态。

5.故障的分类:

  • 事物内部的故障:只影响这个事物本身,一般是非预期的,如运算溢出、因为死锁被撤销等,解决方法是强行回滚。
  • 称为事务撤销系统故障(软故障):造成系统停止运转的任何事件,使得系统重新启动。影响正在运行的所有事务,但不破坏数据库。
  • 介质故障(硬故障):指外存故障,如磁盘损坏
  • 计算机病毒

6.数据库恢复技术的实现:

建立冗余文件(后援副本)、登记日志文件。

7.数据转储:

  • 静态转储:系统中无运行事务时进行的转储,转储期间不允许任何事务执行。 优点:得到的一定是一个数据一致性的副本 缺点:降低了数据库的可用性
  • 动态转储:转储和用户事务可以并发执行 优点:系统可用性较好 缺点:转储得到的副本不一定一致,因此必须建立日志文件等级转储期间各事务对数据库的修改活动
  • 海量转储:每次转储整个数据库,恢复更方便
  • 增量转储:每次只转储上一次转储后更新过的数据,恢复较复杂

7.登记日志文件:

用来记录事务对数据库操作的文件。

8.登记日志文件主要记录啥?

  • 事务的开始。
  • 事务的结束。
  • 事务的操作。
  • 事务的标识。
  • 事务的操作对象。
  • 事务的操作类型。
  • 操作对象之前的值。
  • 操作对象之后的值。

9.登记日志文件原则:

  • 按事务的执行的时间顺序记录
  • 先记录在执行

10.恢复策略:

事务内部故障:

  • 1.反向扫描日志文件
  • 2.对所有操作进行逆操作。
  • 3.如此反复直到读到事务开始标记。

系统故障:

  • 1.正向扫描日志文件。
  • 2.对所有在故障发生前已经commit的事务加入REDO-LIST(重做队列)
  • 3.对所有没有commit标记的事务加入UNDO-LIST(撤销队列)

介质故障:

  • 1.引入最新的登记日志文件以及最新的数据库后援副本
  • 2.重复系统故障的操作(重做已完成,撤销未完成)

11.检查点技术: 我们知道数据库恢复子系统在恢复数据库时。需要扫描日志文件以及对事务进行重做或者撤销。因此,如果每次都要重新操作,每次都要扫描全部的日志文件。很浪费时间。为了解决这个文件,检查点技术应运而生。

12.检查点技术记录的内容:

  • 1.建立检查点时所有正在执行的事务。
  • 2.记录的事务中最近的日志文件地址。

13.动态维护日志文件的方法:

周期的执行、建立检查点,保存数据库状态的操作。

14.动态维护日志文件的具体步骤:

  • 1.将日志缓冲区的所有日志记录写入磁盘的日志文件。
  • 2.在日志文件中写入检查点。
  • 3.将数据缓冲区的数据写入磁盘。
  • 4.将检查点记录在日志文件的地址写入一个重新开始文件。

15.具有检查点记录的数据库恢复步骤:

  • 1.在重新开始文件中找到最后一个检查点记录的文件地址。由该地址在日志文件中找到最后一个检查点。
  • 2.获取最后一个检查点的全部事务记录。
  • 3.建立UNDO-LIST以及REDO-LIST队列。
  • 4.由检查点开始正向扫描日志文件。(将所有事务放入UNDO-LIST,如果存在事务提交,则从把该事务从UNDO-LIST移入REDO-LIST)
  • 5.REDO-LIST的所有事务操作重做。UNDO-LIST的所有事务操作撤销。

16.数据库镜像:

由数据库自动COPY数据保存在另外的磁盘中。一旦出现介质故障则用数据库镜像继续使用。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
18天前
|
存储 测试技术 数据处理
【计算机三级数据库技术】第2章 信息系统需求分析完整知识体系--附思维导图
本文详细介绍了信息系统需求分析的知识体系,包括需求分析的概念和意义、需求获取的方法、需求分析的过程,以及需求分析方法,如DFD数据流图、IDEF0、UML等。文章通过结构化分析和功能建模方法,帮助读者理解如何标识问题、建立需求模型、描述和确认需求,并比较了DFD与IDEF0两种方法的异同,同时提供了思维导图以辅助理解。
45 12
|
18天前
|
存储 监控 安全
【计算机三级数据库技术】第1章 数据库应用系统生命周期下知识体系--附思维导图
本文提供了数据库应用系统生命周期下的知识体系概述,并附有思维导图,帮助读者更好地理解数据库技术及应用的第一章内容,涵盖了数据库系统的规划、分析、设计、实现、测试、运行和维护等各个阶段。
34 12
|
14天前
|
存储 关系型数据库 数据库
数据库技术深度解析与未来趋势展望
数据库,简而言之,就是存储数据的仓库。它可以按照一定的规则存储和管理数据,提供数据的增删改查(CRUD)等基本操作。数据库不仅限于存储功能,还具备数据的共享性、持久性和安全性等特点。通过数据库管理系统(DBMS),用户可以方便地对数据进行管理和访问。
43 3
|
16天前
|
NoSQL 大数据 数据处理
现代数据库技术的演进与挑战
传统的数据库管理系统在处理大数据和实时应用方面面临挑战。本文探讨了现代数据库技术如何应对这些挑战,重点关注了分布式数据库、NoSQL 数据库和内存数据库等新兴技术的发展与应用。
|
18天前
|
SQL 数据库
【计算机三级数据库技术】第6章 高级数据查询--附思维导图
提供了SQL查询的高级概念和应用,包括一般数据查询(如使用TOP、CASE和INTO关键字)、查询结构的并、交、差运算(UNION、INTERSECT、EXCEPT),相关子查询,替代子查询和派生表,以及开窗函数和公用表表达式(CTE)。文中还包含了思维导图,帮助读者更好地理解SELECT单表查询语句的要点。
15 4
|
18天前
|
数据可视化 架构师 测试技术
【计算机三级数据库技术】第5章 UML与数据库应用系统--附思维导图
本文提供了UML在数据库应用系统设计中的应用概览,包括UML建模框架、视图、四大图的介绍,以及如何使用活动图、用例图、类图、顺序图等UML图来表达业务流程、系统需求和内部结构,最后还涉及了系统微观和宏观设计的UML表达方式。
25 4
|
15天前
|
人工智能 NoSQL 关系型数据库
现代数据库技术发展趋势与应用前景探析
在当今数字化时代,数据库技术正日益成为信息管理与应用开发的核心。本文从现代数据库技术的发展趋势出发,探讨了关系型数据库、NoSQL数据库以及新兴的分布式数据库技术,分析它们在各自领域的优势与挑战。结合实际应用场景,探索现代数据库技术的应用前景,为技术从业者提供思路与参考。
|
18天前
|
存储 监控 数据挖掘
【计算机三级数据库技术】第14章 数据仓库与数据挖掘-
文章概述了数据仓库和数据挖掘技术的基本概念、决策支持系统的发展、数据仓库的设计与建造、运行与维护,以及联机分析处理(OLAP)与多维数据模型和数据挖掘技术的步骤及常见任务。
19 3
|
17天前
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。
|
18天前
|
数据库
【计算机三级数据库技术】第11章 数据库的故障管理--附思维导图
文章概述了数据库故障类型及其解决办法、数据库恢复技术、数据转储、日志文件的使用与格式、硬件容错方案(包括RAID技术和服务器容错技术)、以及数据库镜像与容灭策略。
15 2