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

前言

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

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

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


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

下一章传送门

第十一章 并发控制

相关推荐
chengooooooo8 分钟前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser1 小时前
【SQL】多表查询案例
数据库·sql
Galeoto1 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)2 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231112 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白2 小时前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码2 小时前
【SQL实验】触发器
数据库·笔记·sql
和道一文字yyds2 小时前
MySQL 中的索引数量是否越多越好?为什么?如何使用 MySQL 的 EXPLAIN 语句进行查询分析?MySQL 中如何进行 SQL 调优?
数据库·sql·mysql
落笔画忧愁e3 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
Σίσυφος19003 小时前
halcon 条形码、二维码识别、opencv识别
前端·数据库