9.1事务的基本概念
- 事务:用户定义的一个数据库操作序列,是一个不可分割的工作单位
- 事务是恢复和并发控制的基本单位
- 定义事务的方式
- 显式定义事务: COMMIT、ROLLBACK
- 隐式方式 :DBMS按缺省规定自动划分事务
- COMMIT成功:事务中所有对数据库的更新永久生效
- ROLLBACK:事务异常终止,事务回滚所有更新操作,回到开始的状态
- 事务的特性
- 原子性:要么都做,要么都不做
- 一致性:事务执行的结果必须是使数据库从一个一致性状态到另一个一致性状态
- 一致性状态:数据库中只包含成功提交事务的结果
- 隔离性:事务不被其他事务干扰
- 持续性(永久性):事务一旦提交,它对数据库中数据的改变就是永久性的
9.2日志文件
-
日志文件:用来记录事务对数据库更新操作的文件
-
日志文件内容:事务开始标记、事务结束标记、事务的更新操作、事务的内部更新操作
-
数据库镜像:在没有故障时,可用于并发操作
![数据库的恢复技术_恢复技术能保证事务的哪些特性-CSDN博客](https://img-blog.csdnimg.cn/20200514134039448.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d6eWFpd2w=,size_16,color_FFFFFF,t_70)
9.3故障恢复
故障的分类
- 事务内部故障 UNDO
- 事务内部故障的恢复由DBMS自动完成
- 恢复方法:反向扫描文件日志,对事务的更新操作执行逆操作
- 系统故障 UNDO + REDO
- 造成数据库处于不一致的状态,内存出故障,外存没有故障
- 恢复方法:撤销未完成的事务(
UNDO
队列),重做已完成的事务(REDO
队列)
- 介质故障 REDO
- 外存出故障
- 恢复方法:利用备份重装数据库
- 恢复的实现技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)
- 转储的动静态:是否与用户事务并发进行(动态为并发)
- 转储的对象规模:海量(整个DB)、增量
- 转储开始时数据库处于一致性状态
- 静态转储简单,但降低了数据库的可用性