第十章 数据库恢复技术
文章目录
- 第十章 数据库恢复技术
- 10.1事务的基本概念
- 10.2数据库恢复概述
- 10.3故障的种类
- 10.4恢复的实现技术
- 10.4.1数据转储
- 10.4.2登记日志文件
- 10.5恢复策略
- 10.5.1事务故障的恢复
- 10.5.2系统故障的恢复
- 10.5.3介质故障的恢复
- 10.6具有检查点的恢复技术
- 10.7数据库镜像
- 10.8小结
10.1事务的基本概念
- 事务
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位,是恢复和并发控制的基本单位。
(1)事务和程序的区别
①在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
②一个程序通常包含多个事务。
(2)事务的定义
①显式定义方式
事务正常结束格式:
BEGINTRANSACTION;SQL语句;COMMIT;事务正常结束,提交事务的所有操作(读+更新),即事务中所有对数据库的更新写回到磁盘上的物理数据库中。
事务异常终止格式:
BEGINTRANSACTION;SQL语句;ROLLBACK;事务异常终止,事务运行的过程中发生故障,不能继续执行。系统将事务中对数据库的所有已完成的操作全部撤销,事务回滚到开始时的状态。
2. 事务的特性(ACID特性)
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)。
(1)原子性
事务是数据库的逻辑工作单位,原子性是指事务中包括的所有操作要么都做,要么都不做。
(2)一致性
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
- 一致性状态:数据库中只包含成功事务提交的结果。
- 不一致状态:数据库系统运行中发生故障,有些事务尚未完成就被迫中断;这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态。
(3)隔离性
一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
(4)持续性
持续性也称永久性(Permanence),一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
保证事务ACID特性是事务处理的任务,破坏事务ACID特性的因素主要有以下两方面: - 多个事务并行运行时,不同事务的操作交叉执行
数据库管理系统必须保证多个事务的交叉运行不影响这些事务的隔离性。 - 事务在运行过程中被强迫停止
数据库管理系统必须保证被强行终止的事务对数据库和其他事务没有任何影响。
10.2数据库恢复概述
故障是不可避免的,故障主要包括:计算机硬件故障、软件的错误、操作员的失误、恶意的破坏等。
故障对数据库的影响主要表现为:运行事务非正常中断、影响数据库中数据的正确性、数据库全部或部分丢失数据等。
数据库恢复的作用:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能。
数据库恢复子系统是数据库管理系统的一个重要组成部分,而且相当庞大,代码占整个系统的10%。恢复技术是衡量系统优劣的重要指标,因为对系统的可靠程度起到决定性作用。
10.3故障的种类
故障的种类大致分为:事务内部的故障、系统故障、介质故障、计算机病毒