软考:中级软件设计师:数据库恢复与备份,故障与恢复,反规范化

软考:中级软件设计师:数据库恢复与备份

提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性

关于互联网大厂的笔试面试,都是需要细心准备的
(1)自己的科研经历,科研内容,学习的相关领域知识,要熟悉熟透了
(2)自己的实习经历,做了什么内容,学习的领域知识,要熟悉熟透了
(3)除了科研,实习之外,平时自己关注的前沿知识,也不要落下,仔细了解,面试官很在乎你是否喜欢追进新科技,跟进创新概念和技术
(4)准备数据结构与算法,有笔试的大厂,第一关就是手撕代码做算法题
面试中,实际上,你准备数据结构与算法时以备不时之需,有足够的信心面对面试官可能问的算法题,很多情况下你的科研经历和实习经历足够跟面试官聊了,就不需要考你算法了。但很多大厂就会面试问你算法题,因此不论为了笔试面试,数据结构与算法必须熟悉熟透了
秋招提前批好多大厂不考笔试,直接面试,能否免笔试去面试,那就看你简历实力有多强了。
(5)考网警的大佬,务必把软考:中级软件设计师的内容学好学透,学广,学多


文章目录

  • 软考:中级软件设计师:数据库恢复与备份
    • @[TOC](文章目录)
  • 软考:中级软件设计师:数据库恢复与备份
  • 数据库的故障,与恢复
    • 基于日志的恢复机制
  • 逆规范化技术
  • 总结

软考:中级软件设计师:数据库恢复与备份

很重要,2022网警就考了

在这里插入图片描述
具体操作是重点。
在这里插入图片描述
完全备份之后变化的数据——差量备份
要回在这里插入图片描述
要恢复,全部走一遍

不管完全,还是差量,之后变化的数据——增量备份
在这里插入图片描述
恢复只看前一天

在这里插入图片描述
日志文件,记录了我们操作的过程

一旦故障出现,我们再看日志,把操作规范

数据库的故障,与恢复

在这里插入图片描述
2022网警考试中就问你外存被破坏了,请你恢复数据库
爆炸,当时就不会玩

我现在查一波

1.识别 / 定位故障

之一步是找到故障源。数据库介质故障可能有很多种不同的情况,
包括但不限于硬盘故障,内存错误或软件故障等。
当确定了故障源后,就可以采取相应的应对措施进行逐步处理。

2.备份和恢复

如果有完整的备份,则可以使用备份数据库来重新构建数据库。
备份可以是完整的备份,增量备份或差异备份。
使用备份进行恢复时,需要确保备份是最近的可用备份,并考虑到备份的完整性和一致性。
此外,需要验证备份是否可以成功恢复,以及检查备份中丢失了多少数据,然后考虑如何处理这些缺失的数据。

3.尝试修复介质

如果介质故障是硬件问题,则可以尝试对其进行修复,以便可以使用硬件设备继续访问介质。
在这种情况下,可能需要考虑更换故障设备。
通常情况下,管理员会使用工具程序,如 CHKDISK 等来检查硬盘,以了解硬盘的健康状况。
如果发现硬盘有问题,则可以使用硬盘工具来修复它,如 Spinrite 等。

4.数据库恢复

如果数据库中出现故障,可以尝试使用磁盘工具,如 DBCC (SQL Server 数据库),
来修复数据库和表之间的一致性错误和引用损坏。
此外,还可以考虑将数据移动到新的磁盘上,以便及时修复引起问题的磁盘。
在数据库存在转储文件的情况下,可能还可以考虑使用转储文件来手动恢复数据库。

5.数据库恢复 / 校验工具

在尝试恢复时,可能使用特定的数据库恢复或校验工具来帮助找到丢失或损坏的数据并尝试恢复它们。这些工具可以是开源的或专有的,因此,选择适合自己环境和情况的工具是必不可少的。
例如,TestDisk 是一种流行的开源工具,可以帮助找回丢失的文件系统和分区,并修复损坏的分区表和引导记录。

通过识别和定位故障源,备份和恢复,尝试修复介质,数据库恢复,和使用特定的数据库恢复 / 校验工具,
可以从数据库介质故障中进行恢复。

当数据库发生故障时,采取快速,恰当的补救措施,将有助于保护所存储的数据,减少数据损失,
并避免在恢复过程中出现更大的问题。
同时,也需要注意预防这些故障发生,以确保数据库始终处于更佳状态。

这些当年我都没有打出来,分低,名字不够被刷了,可惜

基于日志的恢复机制

常用的三种日志类型
undo 日志
redo 日志
undo/redo 日志
undo 日志及其恢复机制
日志文件更新数据的日志记录格式:
<T, op, x, v>:
op: 更新操作类型
x: 被更新的数据对象
v: x更新前的取值 (原值)

2.1 创建 undo 日志记录的规则

数据元素更新时,先把日志记录写入磁盘,后把更新数据写入磁盘。提交事务前,则先把所有更新数据写入磁盘,后立即把 记录写入磁盘。

写日志 => 更新数据 => commit

2**.2 undo 日志的动态检查及其使用**
① 设置检查点的规则:

在某些事务开始时,写日志记录 <START CRPT(T1,…,TK)>,并刷新日志记录。
等待事务的提交或终止,在此期间可以有其它是事务 Tj 开始;
当 T1,…,TK 提交或终止后,写 End CKPT<T1,TK>,并刷新日志。

在这里插入图片描述
eg:在这里插入图片描述

利用检查点恢复数据库策略:

(1) 从故障点起,逆向扫描日志文件,以便确定故障发生时没有完成的事务。

若逆向扫描过程中,首先遇到 , 则没有完成的事务T,必定没有相应的 记录,且最早位于下列区间
在这里插入图片描述
若逆向扫描过程中,首先遇到 <START CKPT(T1,…Tk)>,则未完成的事务 Tj 没有相应的 记录,且最早位于下列区间:

在这里插入图片描述

redo 日志及其恢复机制
3.1 日志文件更新数据的日志记录格式:
<T, op, x, w>:
op: 更新操作类型
x: 被更新的数据对象
w: x更新后的取值 (新值)

3.2 创建 REDO 日志记录的规则
数据更新时,先把所有记载数据更新的日志记录和 记录写入磁盘,后才把更新数据写入磁盘(先写日志,后写数据)。

3.3 恢复原则:重做已经提交的事务。

3.4 利用 redo 日志进行恢复

写日志记录 <STATRT CKPT(Tj,…,Tk)>,并刷新日志记录;
将写 <START CKPT(Tj,…,Tk)> 日志记录时,缓冲区中所有已经提交,但未写入磁盘的数据库更新操作,完成写盘操作。
写入 日志记录,并刷新日志记录。
在这里插入图片描述

(2) 利用 REDO 日志恢复数据库类型
从故障点起,逆向扫描日志,以确定回复故障时需要重做的已提交事务:

若逆向扫描过程中,首先遇到 , 则需要重做的事务时 Tr ∈ ({Tj} ∪ {T1,…,Tk}),且 Tr 必须是存在 记录的事务
在这里插入图片描述

若逆向扫描过程中,首先遇到 <START CKPT(Ti)>,则应继续扫描,直到另一 <START CKPT(Ts)> 为止(它必有对应的 ).则需要重做的事务时 Tr ∈ ({Tj} ∪ {T1,…,Tk}),且 Tr 必须是存在 记录的事务
在这里插入图片描述

7. redo 和 undo 区别
Undo日志记录某数据被修改前的值,可以用来在事务失败时进行rollback;
Redo日志记录某数据块被修改后的值,可以用来恢复未写入data file的已成功事务更新的数据。

undo:

写盘顺序:数据元素更新时,先把日志写入磁盘,后把更新的数据写入磁盘。提交事务前,先把所有更新数据写入磁盘,后立即把 写入磁盘。
恢复原则: 进行恢复时,从后向前扫描日志,遇到有 commit 的事务忽略,没有 commit 的事务将对数据库的更新进行撤销。
设置检查点规则:事务开始时,写日志记录 <START CKPT(T1,…,Tk)>,并刷新记录 (FLUSH LOG); 等待事务提交或终止;当 T1,…,Tk 提交或终止后,写 <END CKPT(T1,…,Tk)>,并刷新日志。
redo:

写盘顺序: 数据元素更新时,先把更新的日志记录和 写入磁盘;后才把更新数据写入磁盘。(先写日志,后写数据)
恢复原则: 重做已经提交的事务。
设置检查点规则:写日志 <START CKPT(T1,…,Tk)>,并刷新日志记录;将写 <START CKPT(T1,…,Tk)> 时,缓冲区中所有已经提交但未写入磁盘的数据库更新操作,完成写盘操作;写入 日志记录,并刷新纪录。(数据先更新,然后设置检查点,结束检查点,数据提交到磁盘)
基于 undo/redo 日志的恢复机制
<T, op, x, v, w>:
op: 更新操作类型
x: 被更新的数据对象
v: x更新前的取值 (原值)
w: x更新后的取值 (新值)
3.1 创建 undo/redo 日志记录的规则:
数据元素更新时,先把数据更新日志记录写入磁盘。 记录可以在磁盘上数据库元素的修改之前或之后。

3.2 恢复原则:重做已经提交的事务,撤销没有做完的事务。

3.3 设置检查点规则:

写入 START CKPT(T1,…,Tk),并刷新日志记录;
把所有缓冲区的更新数据写入磁盘;
写入 END CKPT,并刷新日志记录;
3.4 恢复策略:

故障点起逆向扫描,确定需要重做和撤销的事务;
重做 COMMIT 的事务,逆向撤销没有 COMMIT 的事务;

逆规范化技术

物极必反
在这里插入图片描述
表太多,慢慢连接,贼慢
增加冗余链,就是逆向规范化
为了方便,就直接搞一个派生冗余,增加总额,以空间换时间
加成绩表,直接看人的乘积,性别和课程放进去,反正实用才行。
组表要 考虑查询速度快。
方便
直接明了‘’


总结

提示:重要经验:

1)
2)
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu学习(五)----读取文件以及光标的移动

1、读取文件函数原型介绍 ssize_t read(int fd,void*buf,size_t count) 参数说明&#xff1a; fd: 是文件描述符 buf:为读出数据的缓冲区&#xff1b; count: 为每次读取的字节数&#xff08;是请求读取的字节数&#xff0c;读上来的数据保存在缓冲区buf中&#xff0c;同时文…

C++设计模式_02_面向对象设计原则

文章目录 1. 面向对象设计&#xff0c;为什么&#xff1f;2. 重新认识面向对象3. 面向对象设计原则3.1 依赖倒置原则(DIP)3.2 开放封闭原则(OCP )3.3 单一职责原则( SRP )3.4 Liskov 替换原则 ( LSP )3.5 接口隔离原则 ( ISP )3.6 优先使用对象组合&#xff0c;而不是类继承3.7…

从零学算法(剑指 Offer 36)

123.输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点&#xff0c;只能调整树中节点指针的指向。 为了让您更好地理解问题&#xff0c;以下面的二叉搜索树为例&#xff1a; 我们希望将这个二叉搜索树转化为双向循环链表。…

Windows-docker集成SRS服务器的部署和使用

Windows-docker集成SRS服务器的部署和使用 一、Windows Docker安装 Docker Desktop 官方下载地址&#xff1a; https://docs.docker.com/desktop/install/windows-install/ 下载windows版本的就可以了。 注意&#xff1a;此方法仅适用于 Windows 10 操作系统专业版、企业版、…

【Unity3D】UI Toolkit容器

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery&#xff0c;本文将介绍 UI Toolkit 中的容器&#xff0c;主要包含 VisualElement、ScrollView、ListView、UI Toolkit&#xff0c;官方介绍详见→UXML elements reference。 2 VisualElement&#xff08;空容器&…

打造成功的砍价营销大解析,销量飙升

砍价活动是吸引顾客的一种有效方式&#xff0c;可以帮助提高销量和提升品牌知名度。在乔拓云平台上&#xff0c;我们提供了一套简单易用的工具&#xff0c;让您能够轻松地制作一个成功的砍价活动。下面&#xff0c;我将详细介绍具体步骤&#xff0c;让您能够轻松上手。 第一步&…

编写c语言程序调用openssl编译出的动态链接库

文章目录 一、编译生成链接库二、示例一&#xff1a;调用RAND_bytes函数三、示例二&#xff1a;调用SHA256 一、编译生成链接库 下载安装openssl并编译生成链接库的过程在我的另一篇文章中已经详细说明了&#xff1a;Ubuntu中安装OpenSSL 此外&#xff0c;我们还需要提前了解…

北京已收录2023开学了《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉八一新书

北京已收录2023开学了《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉八一新书

PMP项目管理主要学习内容是什么?

PMP项目管理是指根据美国项目管理学会(Project Management Institute&#xff0c;简称PMI)制定的项目管理知识体系和方法论进行项目管理的一种认证。PMP主要关注项目的规划、执行和控制等方面的知识和技能。 下面是PMP项目管理《PMBOK指南》第六版的主要学习内容&#xff1a; …

DSP_TMS320F28377D_算法加速方法3_使用TMU库加速

继上两篇方法 DSP_TMS320F28377D_算法加速方法1_拷贝程序到RAM运行_江湖上都叫我秋博的博客-CSDN博客 DSP_TMS320F28377D_算法加速方法2_添加浮点运算快速补充库rts2800_fpu32_fast_supplement.lib_江湖上都叫我秋博的博客-CSDN博客 之后&#xff0c;本文继续讨论第三种DSP算法…

砍价活动制作秘籍,打造抢购风潮

砍价活动作为一种吸引用户参与、提高销售量的营销手段&#xff0c;已经成为了电商行业的热门选择。在如今竞争激烈的市场环境下&#xff0c;如何制作出成功的砍价活动&#xff0c;成为了每位电商从业者亟需解决的问题。在本文中&#xff0c;我们将为大家揭秘一种制作成功砍价活…

大数据之hadoop入门

大数据概念 大数据&#xff1a;无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现李和流程优化能力的海量、高增长率和多样化的信息资产。 大的概念是相对来说的&#xff1a;目前来说&#xff0…

教程i.MX8MPlus开发板SPI转CAN操作

飞凌嵌入式OKMX8MP-C核心板有两路原生CAN总线&#xff0c;但用户在开发产品时可能需要用到更多的CAN&#xff0c;这该如何解决呢&#xff1f;今天小编将为大家介绍一种SPI转CAN的方法&#xff0c;供各位工程师小伙伴参考。 说明 OKMX8MP-C核心板有两路原生的SPI总线&#xff0c…

简单了解IPv4编址

目录 一、IPv4地址 二、进制转换 三、有类IPv4 四、无类IPv4 3.1 子网掩码 3.2 地址规划 3.3 VLSM可变长子网掩码 五、私有IPv4地址 六、IPv4报文格式 七、IP地址解析 一、IPv4地址 IPv4地址由“网络位主机位”构成&#xff0c;所谓的网络位就是我们通常所指的网段区…

高中信息技术教资考试模拟卷(22下)

2022 年下半年全国教师资格考试模考卷一 &#xff08;高中信息技术&#xff09; 一、单项选择题&#xff08;本大题共 15 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09; 1.2006 年 10 月 25 日&#xff0c;深圳警方成功解救出一名被网络骗子孙某…

前端:html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)

一、在一个页面&#xff08;不跨页面&#xff09; 效果&#xff1a; 代码 <!DOCTYPE html> <html><head><style>/* 设置标签页外层容器样式 */.tab-container {width: 100%;background-color: #f1f1f1;overflow: hidden;}/* 设置标签页选项卡的样式 …

MySQL索引和查询优化

文章目录 1.Mysql索引2. b- tree 与 b tree3.覆盖索引和回表查询4.查询优化1.Explain 5.优化实战举例**用户搜索****订单查询****分页查询** 1.Mysql索引 MySQL索引是一种用于提高数据库查询效率的数据结构。它可以加快数据检索的速度&#xff0c;减少查询所需的IO操作和计算…

Spring——Spring读取文件

文章目录 1.通过 value 读取比较简单的配置信息2.通过ConfigurationProperties读取并与 bean 绑定3.通过ConfigurationProperties读取并校验4. PropertySource 读取指定 properties 文件5.题外话:Spring加载配置文件的优先级 很多时候我们需要将一些常用的配置信息比如阿里云os…

el-table 单击某一行,该行的前面的多选框显示已勾选

目 录 官网&#xff1a; 1. 单页面 2. table是组件 案例&#xff1a; 官网&#xff1a; 1. 单页面 通过单击获取当前行的数据&#xff0c;然后传给选中显示勾选的方法。 <template><el-tableref"multipleTable":data"tableData"tooltip-eff…

缓存技术(缓存穿透,缓存雪崩,缓存击穿)

大家好 , 我是苏麟 , 今天聊一聊缓存 . 这里需要一些Redis基础 (可以看相关文章等) 本文章资料来自于 : 黑马程序员 如果想要了解更详细的资料去黑马官网查看 前言:什么是缓存? 缓存,就是数据交换的 缓冲区 (称作Cache [ kʃ ] ),俗称的缓存就是缓冲区内的数据,是存贮数据的…