关系数据库事务处理技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/5/18
9
系统故障
• 所有造成系统停止运转的事件都可称为系 统故障
• 发生系统故障
– 可能造成数据库缓冲区中内容丢失,使得运行 的事务非正常终止
– 已完成的事务部分或全部留在缓冲区,尚没有 写到物理数据库中
2020/5/18
10
介质故障 • 系统故障又称为软故障
• 介质故障被称为硬故障,比如
到的后备副本一定是一致的 – 由于对事务运行的限制,可能降低数据库可用
性
• 动态转储
– 在转储期间允许对数据库进行存取或修改
– 得到的后备副本不一定是一致的
2020/5/18
15
数据转储的分类
• 海量转储
– 每次转储全部数据库 – 用得到的后备副本进行数据库恢复比较方便 – 但如果数据库大且事务处理频繁,则不实用
– 2. 对撤消队列中的各个事务进行撤消处理 – 3. 对重做队列中的各个事务进行重做处理
2020/5/18
22
介质故障的恢复
• 最严重的故障,磁盘上的物理数据和日志文件 被破坏
• 介质故障的恢复步骤
– 1. 装入最新的数据库后备副本,使数据库恢复到 最近一次转储时的一致性状态
– 2. 装入相应的日志文件副本,重做已完成的事务
– BEGIN TRANSACTION开始事务
– COMMIT提交事务所有操作,事务正常结束
– ROLLBACK事务执行中遇故障,回滚到事务开 始时的状态,事务结束
2020/5/18
3
事务的特性
• 原子性(Atomicity)
– 同一事务内的操作不可分割
• 一致性(Consistency)
– 事务执行的结果必须是使数据库从一个一致性 状态变到另一个一致性状态
2020/5/18
5
事务的处理技术 • 事务处理技术用于保证事务的ACID特性
• 保证被强行终止的事务对数据库和其他事 务没有任何影响
– 数据库恢复技术
• 保证多个事务的交叉运行不影响这些事务 的原子性
– 并发控制
2020/5/18
6
本讲内容 • 事务的基本概念
• 数据库恢复技术
• 并发控制技术
– 以数据库块为单位的日志文件
• 事务标识、更新前的数据块、更新后的数据块
2020/5/18
17
日志文件的作用
• 事务故障和系统故障的恢复必须使用登记 日志
• 动态转转储储 方式中,必须使用运登行事记务日志
重装后备副本
重新运行事务
2020/5/18
18
登记日志文件的准则
• 日志的登记次序严格按并发事务执行的时 间次序
2020/5/18
1
本讲内容 • 事务的基本概念
• 数据库恢复技术 有所了解即可
• 并发控制技术
2020/5/18
2
什么是事务
• 事务是用户定义的一个数据库操作序列
– 该序列内的操作是不可分割的 – 在RDBMS中,一个事务可由一条、多条SQL
语句组成
• 在RDBMS中,用于事务的标准SQL语句有
2020/5/18
7
数据库恢复技术 • 故障种类 • 恢复的实现技术
• 恢复的策略
2020/5/18
8
事务内部故障 • 事务内部故障有两大类
– 可通过事务程序发现的,ROLLBACK
– 非预期的,不能由应用程序处理
• 若未特别指明,事务故障特指这一类故障
• 事务故障意味着事务没有到达预期的终点
– 数据库可能处于不正确的状态
• 必须先写日志文件,后写数据库
– 将数据的修改写到数据库中是一个操作
– 将表示该数据修改的日志写到日志文件中又是 一个操作
2020/5/18
19
数据库恢复技术 • 故障种类 • 恢复的实现技术
• 恢复的策略
2020/5/18
20
事务故障的恢复
• 事务故障的恢复由系统自动完成,对用户 透明
• 某事务发生故障后,系统恢复步骤
• 增量转储
– 每次只转储上一次转储后被更新过的数据
– 转储和使用后备副本进行恢复时比海量转储麻 烦
2020/5/18
16
日志文件概念及格式
• 日志文件是用于记录事务对数据库的更新 操作的文件
– 不同RDBMS采用的日志文件格式不完全一样
• 日志文件的格式
– 以记录为单位的日志文件
• 事务标识、操作类型、操作对象、更新前数据的值 、更新后数据的值
– 1. 反向扫描日志文件,查找该事务的更新操作 – 2. 对该事务的更新操作执行逆操作 – 3. 继续反向扫描日志,查找该事务的其他更新
操作,返2 – 4. 直到反向扫描到事务的开始标记
2020/5/18
21
系统故障的恢复
• 系统故障恢复由系统自动完成,不需用户 干预
• 系统故障的恢复步骤
– 1. 正向扫描日志文件,找出在故障发生前已提 交的事务,将其事务标识记入重做队列;找出 故障发生时尚未完成的事务,将其事务标识记 入撤消队列
– 磁盘损坏、瞬时强磁场干扰等
– 破坏部分或整个数据库,影响正在存取相应数 据的事务
– 发生机率小于前两种故障,但破坏性大
2020/5/18
11
数据库恢复技术 • 故障种类 • 恢复的实现技术
• 恢复的策略
2020/5/18
12
• 数据库恢复机制的关键 – 建立冗余数据 – 利用冗余数据恢复数据库
• 建立冗余数据的常用技术
– 数据转储
– 登记日志文件
2020/5/18
13
数据转储
• DBA定期地将整个数据库复制到磁盘或另 一个磁盘上保存的过程称为转储
– 备用数据称为后备副本
转储
运行事务
Biblioteka Baidu重装后备副本
重新运行事务
2020/5/18
14
数据转储的分类
• 静态转储
– 在系统中无运行事务时进行的转储 – 只要转储开始时数据库处于一致性状态,则得
• 隔离性(Isolation)
– 一个事务的执行不能被其他事务干扰
2020/5/18
4
事务的特性
• 持续性(Durability)
– 某一事务一旦提交,其对数据库中数据的改变 就是永久性的
– 发生于该事务提交后的其他操作或故障,均不 影响该事务的执行结果
• 事务的四个特征
– Atomicity、Consistency、Isolation、Durability – ACID特性
2020/5/18
23
本讲内容 • 事务的基本概念
• 数据库恢复技术
• 并发控制技术
2020/5/18
24
• 并发操作及其引发的问题
• 并发控制的实现
– 封锁 – 两段锁协议
2020/5/18
25
并发操作的必要性
• 事务一个一个串行执行,可避免同时运行 多个事务所引发的冲突
T1
• 但无法充分利用系统资源