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

前言

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

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

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


数据库系统概论系列文章传送门:
第一章 绪论
第二/三章 关系数据库和标准语言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

下一章传送门

第十一章 并发控制

相关推荐
瓜牛_gn37 分钟前
mysql特性
数据库·mysql
奶糖趣多多2 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt3 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧5 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Channing Lewis6 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
毕业设计制作和分享7 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil277 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk8 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境8 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n8 小时前
MYSQL库的操作
数据库·mysql