网站建设文件夹结构,北京做百度网站,广州建站费用,wordpress 新建侧边栏软考#xff1a;中级软件设计师:数据库恢复与备份 提示#xff1a;系列被面试官问的问题#xff0c;我自己当时不会#xff0c;所以下来自己复盘一下#xff0c;认真学习和总结#xff0c;以应对未来更多的可能性
关于互联网大厂的笔试面试#xff0c;都是需要细心准备…软考中级软件设计师:数据库恢复与备份 提示系列被面试官问的问题我自己当时不会所以下来自己复盘一下认真学习和总结以应对未来更多的可能性
关于互联网大厂的笔试面试都是需要细心准备的 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 CKPTT1,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可以不考虑空间复杂度但是面试既要考虑时间复杂度最优也要考虑空间复杂度最优。