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

前言

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

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

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


数据库系统概论系列文章传送门:
第一章 绪论
第二/三章 关系数据库和标准语言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 小时前
MySQL联合查询
数据库·mysql
morris1313 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁
hycccccch4 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
这个懒人4 小时前
深入解析Translog机制:Elasticsearch的数据守护者
数据库·elasticsearch·nosql·translog
Yan-英杰4 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
NineData5 小时前
NineData云原生智能数据管理平台新功能发布|2025年3月版
数据库
百代繁华一朝都-绮罗生6 小时前
检查是否存在占用内存过大的SQL
数据库·sql
吾日三省吾码6 小时前
Python 脚本:自动化你的日常任务
数据库·python·自动化
CZIDC6 小时前
win11 系统环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境
数据库·ubuntu·ssh
直裾6 小时前
Mapreduce的使用
大数据·数据库·mapreduce