ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CS-Xmind-Note 数据库恢复技术全解:事务、ACID 与基于冗余的故障恢复机制

CS-Xmind-Note 数据库恢复技术全解:事务、ACID 与基于冗余的故障恢复机制 文档教程知识库【免费下载链接】CS-Xmind-Note计算机专业课408思维导图和笔记计算机组成原理第五版 王爱英数据结构王道计算机网络第七版 谢希仁操作系统第四版 汤小丹项目地址https://gitcode.com/gh_mirrors/cs/CS-Xmind-Note点击查看免费下载本篇技术指南以 数据库恢复技术 为核心骨架系统梳理数据库恢复技术的完整知识体系从事务的定义、COMMIT/ROLLBACK 两种结束方式到 ACID 四特性、四类故障的成因与影响再到冗余这一恢复基本原理与数据转储、日志文件两大实现技术。文中结合本仓库408 专业课笔记数据库部分对应《数据库系统概论》第五版 王珊、萨师煊中 并发控制、完整性约束 等关联章节帮助你建立事务 → 故障 → 恢复的完整认知链条可直接用于备考复习与数据库故障排查实战。什么是事务事务Transaction是用户定义的一个数据库操作序列这些操作要么全做要么全不做是一个不可分割的工作单位。这是数据库恢复技术乃至整个数据库理论中最重要的基础概念之一本仓库将其列为恢复和并发控制的基本单位。事务与程序是两个概念在关系数据库中一个事务可以是一条 SQL 语句、一组 SQL 语句或整个程序一个应用程序通常包含多个事务事务是恢复和并发控制的基本单位。也就是说程序是静态的代码集合事务是动态执行时被系统视为一个逻辑单元的若干操作。同一程序在多次运行中可能产生多个事务一次转账操作A 账户扣款 B 账户入账如果跨多条 SQL 语句通常会被设计成一个事务保证中间任意一步失败时整体回滚。事务结束COMMIT 与 ROLLBACK事务的结束只有两种途径COMMIT提交事务正常结束提交事务的所有操作读 更新事务中所有对数据库的更新永久生效只有执行 COMMIT 后事务的结果才对外可见且不可撤销对应下文 ACID 中的持续性。ROLLBACK回滚事务异常终止事务运行过程中发生了故障不能继续执行回滚事务的所有更新操作事务滚回到开始时的状态。COMMIT 与 ROLLBACK 在 SQL 中的典型用法以标准 SQL / SQL Server 语法为例BEGIN TRANSACTION; UPDATE 账户 SET 余额 余额 - 100 WHERE 账号 A; UPDATE 账户 SET 余额 余额 100 WHERE 账号 B; -- 两条语句都成功 COMMIT; -- 任一步失败则 ROLLBACK;事务的特性ACID 特性原子性Atomicity事务是数据库的逻辑工作单位事务中包括的诸操作要么都做要么都不做。原子性保证一个事务不可能执行到一半就结束要么全部生效要么像从未发生过一样。原子性由 DBMS 的恢复机制日志 回滚来保障。一致性Consistency事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一致性状态数据库中只包含成功事务提交的结果不一致状态数据库中包含失败事务的结果。一致性与完整性约束参见仓库 完整性约束密切相关事务执行前后数据库都必须满足所有完整性约束实体完整性、参照完整性、用户定义完整性。隔离性Isolation对并发执行而言一个事务的执行不能被其他事务干扰一个事务内部的操作及使用的数据对其他并发事务是隔离的并发执行的各个事务之间不能互相干扰。隔离性是并发控制要解决的问题仓库 并发控制 一章专门讨论了多事务并发执行带来的丢失修改、不可重复读、读脏数据三类不一致问题及其封锁机制X 锁、S 锁、三级封锁协议正是隔离性的具体保障手段。持续性Durability持续性也称永久性Permanence一个事务一旦提交它对数据库中数据的改变就应该是永久性的接下来的其他操作或故障不应该对其执行结果有任何影响。持续性意味着即使系统随后崩溃已提交事务的结果也必须能够恢复出来这正是日志文件REDO要解决的问题。故障故障原因计算机硬件故障系统软件和应用软件的错误操作员的失误恶意的破坏。故障的影响运行事务非正常中断破坏数据库。故障直接影响事务的正常执行并可能造成数据库中数据的错误或丢失。数据库恢复技术存在的意义就是把这些故障造成的影响降到最低。故障的种类按破坏范围和恢复方式故障通常分为四类故障种类特点典型场景事务故障单个事务非正常中断只影响该事务运算溢出、死锁被选中撤销、违反完整性约束被中止系统故障整个系统突然停止运行内存中数据丢失但外存数据未遭物理破坏断电、操作系统崩溃、DBMS 代码缺陷导致停机介质故障外存磁盘上的数据库部分或全部被破坏磁盘损坏、磁头碰撞、强磁场干扰计算机病毒恶意程序篡改或删除数据病毒破坏数据文件从仓库 数据库绪论 的表述可知硬件故障、软件故障、操作员失误以及故意破坏都会影响数据库中数据的正确性甚至造成数据库部分或全部数据的丢失因此DBMS 必须具有将数据库从错误状态恢复到某一已知的正确状态亦称为完整状态或一致状态的功能。恢复操作的基本原理冗余恢复操作的基本原理是冗余。具体而言利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据。数据库中任何一个部分被破坏或不正确后都可以利用存储在别处的冗余副本来重建。冗余是恢复技术能够成立的前提——没有冗余损坏的数据就无从还原。恢复的实现技术恢复的实现依靠两大核心技术数据转储backup和登录日志文件logging。数据转储backup数据转储是数据库恢复中采用的基本技术指DBA 定期地将整个数据库复制到磁带或其他存储介质上保存起来的过程。这些保存下来的数据副本称为后备副本backup copy。当数据库遭到破坏后可将后备副本重新装入将数据库恢复到转储时的状态。但注意只靠后备副本只能恢复到转储时刻的状态转储之后到故障发生之间对数据库的更新会丢失。因此转储通常要配合日志文件一起使用才能恢复到故障发生前的最新一致状态。转储按时机与方式可组合出四种策略静态转储系统中无运行事务时进行的转储操作转储期间不允许对数据库进行任何存取、修改活动得到的一定是一个一致副本但降低了可用性动态转储转储期间允许对数据库存取或修改后备副本可能不是一致副本需配合日志记录重做REDO才能得到一致副本海量转储每次转储全部数据库增量转储只转储上次转储后更新过的数据。实际使用中通常组合运用例如定期海量静态转储 频繁增量动态转储在恢复代价与数据丢失风险之间取得平衡。登录日志文件logging日志文件是用来记录事务对数据库的更新操作的文件是恢复时确定哪些事务需要撤销UNDO、哪些事务需要重做REDO的依据。为保证可恢复性日志记录必须遵守两条原则登记的次序严格按并发事务执行的时间次序必须先写日志文件后写数据库即先写日志原则否则如果先写了数据库而后在写日志时发生故障就无法利用日志来恢复导致恢复错误。日志文件中每条日志记录通常包含事务标识标明是哪个事务、操作的类型插入/删除/修改、操作对象、更新前数据的旧值用于 UNDO、更新后数据的新值用于 REDO。结合日志与后备副本各类故障的恢复策略可概括为故障类型恢复策略事务故障反向扫描日志对未完成事务执行UNDO撤销回滚到事务开始状态系统故障对未提交事务UNDO对已提交但未写入数据库的事务REDO重做使数据库恢复到一致状态介质故障装入最近的后备副本再利用日志REDO所有已提交事务恢复到故障前最新状态小结数据库恢复技术围绕一条主线展开事务是恢复的基本单位数据库恢复技术事务以 COMMIT / ROLLBACK 结束并具有 ACID 特性运行过程中可能遭遇事务故障、系统故障、介质故障与计算机病毒恢复的本质是利用冗余数据重建被破坏的数据具体通过数据转储提供后备副本与登录日志文件提供 UNDO / REDO 依据两大技术实现。恢复技术与 并发控制 共同构成了 DBMS 保证数据库正确性的两大支柱也是数据库系统概论课程与 408 联考的高频考点。本文基于仓库 数据库/10数据库恢复技术/数据库恢复技术.md 整理对应的思维导图源文件为 数据库恢复技术.xmind并可在 数据库/数据库.md 总览中查阅并发控制、完整性约束等关联章节。赞分享文档教程知识库【免费下载链接】CS-Xmind-Note计算机专业课408思维导图和笔记计算机组成原理第五版 王爱英数据结构王道计算机网络第七版 谢希仁操作系统第四版 汤小丹项目地址https://gitcode.com/gh_mirrors/cs/CS-Xmind-Note点击查看免费下载相关推荐数据库备份与恢复策略CS-Xmind-Note笔记实用指南数据库备份与恢复策略CS Xmind Note笔记实用指南 你是否曾因数据库意外崩溃而丢失重要数据是否在面对复杂的恢复流程时感到无从下手本文将基于 数据库文档教程知识库如何轻松备份你的微信聊天记录3种格式完整导出指南如何轻松备份你的微信聊天记录3种格式完整导出指南 你是否担心手机丢失或更换时那些珍贵的微信对话会永远消失是否曾想将重要的工作沟通或温馨的家庭聊天永久保存在IsaacLab项目中添加自定义机器人资产的方法在IsaacLab项目中添加自定义机器人资产的方法 背景介绍 IsaacLab是一个基于NVIDIA Omniverse平台的机器人仿真与学习框架它提供了强大即时通讯上一篇5分钟NCM转MP3免费开源工具ncmdump让下载的网易云音乐真正归你下一篇Astryx Skeleton 组件契约深度解析占位符解剖结构、skeleton 主题目标与知识契约校验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表