数据库的恢复技术

news2024/10/7 18:29:04

更好的阅读体验

存储器结构

分类

1、易失性存储器:内存、高速缓冲存储器
2、非易失性存储器:磁盘、磁带
3、稳定存储器:理想的存储器,其中信息永不丢失

稳定存储器的实现

要实现稳定存储器,就要在多个非易失性存储介质上以独立的故障模式复制所需要的信息,并且以某种受控的方式更新数据,以保证数据传送的过程中发生的故障不会破坏所需信息
采用冗余独立磁盘阵列(RAID)可以保证单个磁盘的故障不会导致数据丢失。

数据访问

数据库通常驻留在磁盘上,并且划分成固定长度的块。块是磁盘传送的基本单位,可能包含多个记录。
缓冲块是暂时驻留在主存中的块,物理块位于磁盘上.
8.png
9.png

基于日志的恢复技术

日志

1、日志是日志记录的序列,记录了数据库中所有的更新活动。登记了每个事务的开始标记、结束标记、和所有更新操作
2、事务结束可能是正常提交(commit)、也可能是异常终止(abort)
3、事务的更新可能是插入、删除、更改
11.png
10.png
登记日志的原则
1、日志记录必须严格按并发事务的时间次序登记
2、必须先记日记后写数据库

redo(Ti):根据日志记录,登记日志的次序,将事务Ti每次更新的数据对象的新值用write操作重新写到数据库中。redo执行多次等价于执行一次
undo(Ti):根据日志,按照登记日志的相反次序,将事务Ti每次更新的数据对象的旧值用write操作写回数据库。

延迟更新

将对事务的更新推迟到事务提交之后遵循以下原则
(1)、每个事务在到达提交点之前不能更新数据库
(2)、在一个事务的所有更新操作的日志记录写入稳定存储器之前,该事务不能达到提交点

延迟更新技术只需要在日志中记录被更新数据对象的新值

事务故障的处理:12.png

系统故障的处理

13.png
14.png
对于(a)时刻:这时没有commit所有事务都未提交所以不用管
对于(b)时刻:T0commit所以对T0事务执行redo
c:T0、T1均commit执行redo

即时更新

允许事务在活跃状态时就将更新输出到数据库上。处于活动状态的事务直接在数据库上实施的更新称为非提交更新。遵循以下原则
(1)、在<Ti, Xj, V1, V2>安全地输出到稳定性存储器之前,事务Ti不能更新
(2)、在所有<Ti, Xj, V1, V2>类型的日志记录安全地输出到稳定存储器之前,不孕寻事务提交
15.png

事务故障处理

16.png

系统故障的处理

17.png
18.png

延迟更新和即时更新对数据库的恢复的不同之处就是因为更新数据库的时间不同导致,延迟更新是用已经commit的去恢复,没有commit的我们本身没有对数据库操作也就不用恢复,而即时更新是我们在commit之前只要日志记录成功我们就可以更新数据库,一旦出现故障,那些没有commit的我们用记录中的旧值去更新,commit的用新值去更新。

基于检查点的恢复技术

对于系统故障恢复时,必须搜索日志,确定哪些事务是需要redo的,哪些事务是需要undo的,这个过程需要搜索整个日志,这里就会有两个问题
1、日志一般来说很大,搜索起来很耗时
2、有些事务已经写入数据库,再次执行redo虽然不会错,但是会耗时
检查点技术的使用就很好的解决了这两个问题
通过定期建立检查点来解决
21.png
基于即时更新的检查点恢复过程
22.png
23.png
19.png
20.png

介质故障恢复技术

虽然介质故障不常见但危害巨大
首先说一下转储的概念
转储是指将整个或部分数据库复制到磁带或另一个磁盘上,产生数据库后备副本的过程。根据转储时是否允许事务运行可以分为静态转储和动态转储
静态转储
24.png
动态转储
25.png
海量转储和增量转储
26.png
27.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

32从零开始学Java之方法传参到底是值传递还是引用传递?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中&#xff0c;壹哥给大家讲解了方法的定义、调用和返回值&#xff0c;但方法的内容还有…

如何避免在Facebook群组中过度营销?

在社交媒体时代&#xff0c;Facebook群组已经成为了企业宣传的热门渠道之一。然而&#xff0c;很多企业在使用Facebook群组进行宣传时&#xff0c;都会犯一个很容易被忽视的错误——过度营销。 过度营销不仅会让Facebook群组的成员感到反感&#xff0c;甚至还会让管理员将你的帖…

如何进行TCP抓包调试?

网络调试工具——Wireshark Wireshark 是世界上应用最广泛的网络协议分析器&#xff0c;它让我们在微观层面上看到整个网络正在发生的事情。 Wireshark 本身是一个开源项目&#xff0c;所以也得到了很多志愿者的支持。同时&#xff0c;Wireshark 具有丰富的功能集&#xff0c;…

基于短时傅里叶变换的同步压缩变换原理和Matlab代码

基于短时傅里叶变换的同步压缩变换原理 新的短时傅里叶变换(STFT)被定义为 考虑一个单分量信号 对相位 φ ( t ) \varphi (t) φ(t)进行泰勒展开&#xff0c;并丢弃二阶以及高阶项。 将上式带入STFT后&#xff0c;可得 关于上式对时间 t t t求导&#xff0c;得到关于瞬时频…

Transformer 估算 101

本文主要介绍用于估算 transformer 类模型计算量需求和内存需求的相关数学方法。 引言 其实&#xff0c;很多有关 transformer 语言模型的一些基本且重要的信息都可以用很简单的方法估算出来。不幸的是&#xff0c;这些公式在 NLP 社区中鲜为人知。本文的目的是总结这些公式&am…

20230518 美国知乎 Quora 旗下 Poe.com 上可以免费Claude试用 7 天。

&#x1f680; 美国知乎 Quora 旗下 Poe.com 上可以免费Claude试用 7 天。 最强竞品 Claude 最近实现了史诗升级&#xff0c;支持十万 token 上下文&#xff0c;并且可以处理英文书籍&#xff0c;但申请使用需要付费。 而在美国知乎 Quora 旗下 Poe.com 上可以免费试用 7 天。…

【密码产品篇】金融数据密码机密钥体系结构(对称密码体制)

【密码产品篇】金融数据密码机密钥体系结构&#xff08;对称密码体制&#xff09; 金融数据密码机采用基于"对称密码体制"的三层密钥体系结构&#xff1b;分别为"主密钥、次主密钥和数据密钥"三层。金融数据密码机中的密钥采用"自上而下逐层保护&quo…

520要来了,CSS3模拟3D旋转节日表白动画特效

一年一度的520要来了&#xff0c;做为一名CSS3爱好者&#xff0c;怎么能不为大家的技术型表白做出一点贡献呢&#xff0c;这不&#xff0c;用CSS3模拟3D旋转的表白特效来了&#xff0c;快快拿去表白 目录 实现思路 单层3D可见 HTML源代码 CSS3源代码 实现思路 本文通过添…

C++ 中的继承和多态

C 中的继承和多态 一、继承二、函数重载、隐藏、覆盖、重写1.函数重载&#xff08;Function Overload&#xff09;2.函数隐藏&#xff08;Function Hiding&#xff09;3.函数重写与函数覆盖&#xff08;Function Override&#xff09; 三、多态四、纯虚函数和抽象类五、多重继承…

【Linux高级 I/O(1)】如何使用阻塞 I/O 与非阻塞 I/O?

本系列再次回到文件 I/O 相关话题的讨论&#xff0c;将会介绍文件 I/O 当中的一些高级用法&#xff0c;以应对不同应用场合的需求&#xff0c;主要包括&#xff1a;非阻塞 I/O、I/O 多路复用、异步 I/O、存储映射 I/O 以及文件锁。 非阻塞 I/O 关于“阻塞”一词前面已经给大家…

使用大语言模型集成工具 LangChain 创建自己的论文汇总和查询工具

Langchain可以帮助开发人员构建由大型语言模型(llm)支持的应用程序。它提供一个框架将LLM与其他数据源(如互联网或个人文件)连接起来。这允许开发人员将多个命令链接在一起&#xff0c;以创建更复杂的应用程序。包括最近比较火爆的AutoGPT等都是使用了Langchain框架进行开发的。…

【框架源码】Spring源码底层IOC容器加入对象的方式

1.Spring容器加入对象方式简介 使用XML配置文件 在XML配置文件中使用< bean >标签来定义Bean&#xff0c;通过ClassPathXmlApplicationContext等容器来加载并初始化Bean。 使用注解 使用Spring提供的注解&#xff0c;例如Component、Service、Controller、Repository等注…

一篇带你看懂什么是DesignOps(设计运营管理)

“好设计就是好生意”(Good design is good business) ----IBM创始人Thomas J. Watson早在20世纪50年代&#xff0c;IBM就开始关注好设计。IBM创始人Thomas J. Watson认为好的设计能很大程度提高产品的质量、功能和美观度&#xff0c;吸引更多的消费者和客户&#xff0c;增加销…

工程监测无线中继采集仪的寄存器(参数)汇总详解

工程监测无线中继采集仪的寄存器&#xff08;参数&#xff09;汇总详解 一、 寄存器&#xff08;参数&#xff09;汇总 无线中继采集发送仪有很多参数&#xff08;寄存器&#xff09;&#xff0c;对于一些简单的应用&#xff0c;用户无需关心这些参数&#xff0c;使用默认参数值…

【GPT-4理论篇-1】GPT-4核心技术探秘 | 京东云技术团队

前言 GPT-4已经发布有一段时间了&#xff0c;但是出于安全性等各种原因&#xff0c;OpenAI并没有公布GPT-4的技术细节和代码&#xff0c;而是仅仅给出了一个长达100页的技术报告[1]。 这个技术报告着重介绍了GPT-4的强大之处&#xff0c;仅仅给出了几个技术方向的概括&#x…

《汇编语言》- 读书笔记 - 实验

《汇编语言》- 读书笔记 - 实验 实验 1 查看 CPU 和内存&#xff0c;用机器指令和汇编指令编程1. 预备知识: Debug 的使用r 修改或显示寄存器的值d 查看内存数据e 编辑内存中指定地址的内容u 显示代码t 单步执行一条指令a 写入汇编指令g 执行到指定位置n 指定文件名L 加载文件W…

可视化大屏就是“面子工程”?那是你压根不了解大屏的真正功能

我经常收到这样的私信“企业投入可视化大屏有必要吗&#xff1f;有什么好处呢&#xff1f;”我想说在当前数据时代&#xff0c;企业提高自身竞争力多在这方面下功夫是有必要的。说“没用”的人&#xff0c;都是大屏做的失败的人群&#xff0c;其实“面子”作用确实有&#xff0…

HTTP的协议格式与Fiddler的应用

HTTP的协议格式与Fiddler的应用 &#x1f50e;HTTP协议是什么&#x1f50e;HTTP协议的工作过程&#x1f50e;HTTP的协议格式Fiddler 的应用抓包工具原理协议格式总结 &#x1f50e;结尾 &#x1f50e;HTTP协议是什么 HTTP(超文本传输协议)是一种应用非常广泛的应用层协议 对于…

栈和队列OJ题:LeetCode--20.有效的括号

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;今天给大家带来的是LeetCode--20.有效的括号 数 据 结 构 专 栏&#xff1a;数据结构 个 人 主 页 &#xff1a;stackY、 LeetCode 专 栏 &#xff1a;LeetCode刷题训练营 LeetCode--20.有效的括号&#xff1a;htt…

TypeError Object of type int64 is not JSON serializable

TypeError: Object of type int64 is not JSON serializable debug解析&#xff0c;在正常处理数据过程中&#xff0c;把模型预测结果&#xff0c;其他结构化数据转为str保存时&#xff0c;常常用到 json.dumps()&#xff0c;报错内容如标题所示。 原因&#xff1a;json.dump…