数据库-第十章 数据库恢复技术【期末复习|考研复习】

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。

参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。


数据库系统概论系列文章传送门:
第一章 绪论
第二/三章 关系数据库和标准语言SQL
第四/五章 数据库安全性和完整性
第六/七章 关系数据理论和数据库设计
第八/九章 数据库编程和优化
第十章 数据库恢复技术
第十一章 并发控制


文章目录

  • 前言
  • [第十章 数据库恢复技术](#第十章 数据库恢复技术)
    • [10.1 事务的基本概念](#10.1 事务的基本概念)
    • [10.2 事务的ACID特性](#10.2 事务的ACID特性)
    • [10.3 数据库恢复](#10.3 数据库恢复)
    • [10.4 故障种类](#10.4 故障种类)
    • [10.5 恢复的实现技术](#10.5 恢复的实现技术)
    • [10.6 日志文件](#10.6 日志文件)
    • [10.7 数据库镜像](#10.7 数据库镜像)
  • 练手题
  • 下一章传送门

第十章 数据库恢复技术

10.1 事务的基本概念

事务:用户定义的一个数据库序列,要么不做,要么全做,是一个不可分割的工作单位。

BEGIN TRANSACTION

COMMIT

ROLLBACK //表示回滚,指事务遇到某些故障,系统将撤销操作,回滚到事务开始时的状态

10.2 事务的ACID特性

四个特性:

原子性(atomicity)

一致性(consistency)

隔离性(isolation)

持续性(durability)

原子性:要么不做,要么全做。不可拆分;

一致性:和原子性密切相关。事务的执行结果必须是使数据库从一个状态到另一个状态。

隔离性:一个事务的执行不能被其他事务干扰

持续性:一个事务一旦提交对数据库的影响就是永久性的。

保持事务的ACID特性是事务管理的重要任务。可能遭到的破坏因素有:

(1)多个事务并发执行,不同事物交叉执行。

(2)强制停止

10.3 数据库恢复

数据库的恢复:尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,但是还有一些是不可避免的。数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状态的功能。

10.4 故障种类

事务故障类型:事务内部的故障、系统故障、介质故障、计算机病毒

事务撤销:在不影响其他事务运行的情况下,强制回滚该事务,撤销事务做出的任何操作。使得事务好像没有启动一样。------内部

事务故障的恢复策略:

1、反向扫描日志文件查找该事务的更新操作,对该事务的更新操作进行逆操作。

2、对该事务的其他更新操作做同样的处理,直到读到该事务的开始标记时事务故障恢复完成。

系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。如:CPU故障、操作系统故障、DBMS代码错误、系统断电等。

恢复策略:

1、从头扫描日志文件找出在故障发生前已经提交的事务将其记入重做队列,同时找出故障发生时未完成的事务将其事务标记记入撤销队列。

2、对撤销队列的各个事务进行撤销处理。

3、对重做事务中的各个事务进行重做处理

介质故障:磁盘损坏、磁头碰撞等。

恢复策略:重装数据库,重做已完成的事务。

10.5 恢复的实现技术

恢复的基本原理:冗余。

恢复机制的两个关键问题:如何建立冗余数据、如何利用这些冗余数据实施数据库恢复。

建立冗余数据最常用的技术是数据转储和登记日志文件。

数据转储:数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程。后备副本,这些副本只能将数据库恢复到转储时的状态。

静态转储:转储时不能有任何操作;动态转储: 转储和用户事务可以并发执行。

海量转储:全部数据库;增量转储:只转储更新部分

10.6 日志文件

日志文件是用来记录事务对数据库的更新操作的文件。事务故障恢复和系统故障恢复必须使用日志文件。

在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。

为保证数据库是可恢复的,登记日志文件时必须遵循两条原则。

(1) 登记的次序严格按照并发事务执行地时间次序

(2) 必须先写日志文件再写数据库。

10.7 数据库镜像

相当于复制。镜像和源数据库一致。出现故障,就可以利用镜像恢复。

练手题

11.1

11.2

下一章传送门

第十一章 并发控制

相关推荐
夏木~1 小时前
Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率
数据库·oracle
W21551 小时前
Liunx下MySQL:表的约束
数据库·mysql
黄名富1 小时前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
言、雲1 小时前
从tryLock()源码来出发,解析Redisson的重试机制和看门狗机制
java·开发语言·数据库
A懿轩A2 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
一个程序员_zhangzhen2 小时前
sqlserver新建用户并分配对视图的只读权限
数据库·sqlserver
zfj3212 小时前
学技术学英文:代码中的锁:悲观锁和乐观锁
数据库·乐观锁··悲观锁·竞态条件
吴冰_hogan2 小时前
MySQL InnoDB 存储引擎 Redo Log(重做日志)详解
数据库·oracle
nbsaas-boot2 小时前
探索 JSON 数据在关系型数据库中的应用:MySQL 与 SQL Server 的对比
数据库·mysql·json
cmdch20172 小时前
Mybatis加密解密查询操作(sql前),where要传入加密后的字段时遇到的问题
数据库·sql·mybatis