数据库恢复技术

本文涉及的产品
日志服务 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数据保存在另外的磁盘中。一旦出现介质故障则用数据库镜像继续使用。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
29天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
110 8
|
27天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
77 1
|
6月前
|
Cloud Native 关系型数据库 分布式数据库
|
7月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
6月前
|
存储 关系型数据库 分布式数据库
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
1月前
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
6月前
|
存储 关系型数据库 分布式数据库
|
2月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
133 0
|
4月前
|
存储 人工智能 关系型数据库
诚邀您参加《智启云存:AI时代数据库RDS存储新突破》线上闭门技术沙龙!
诚邀您参加6月11日(周三)14:00在线上举行的《智启云存:AI时代数据库RDS存储新突破》闭门活动。免费报名并有机会获得精美礼品,快来报名吧:https://hd.aliyun.com/form/6162

热门文章

最新文章