(P72-73)数据库系统下-数据库事务处理技术(故障恢复)
文章目录
- 1.数据库的故障类型以及其影响
- 2.数据库故障恢复的宏观思路
- 3.小结
1.数据库的故障类型以及其影响
DBMS的运行方式
- DBMS利用内存(主存)和外存(辅存)这样的存储体系来进行数据库管理
- 在内存中, 又将其分为程序数据(事务数据)和系统数据
事务 - 事务是DBMS对数据库进行控制的基本逻辑单元。
- 事务:宏观上是由程序员设置的一条或多条SQL语句的一次执行;
微观上是对数据元素的一系列基本操作,如读写等。需要提交和撤销。 - 数据元素:
DBMS一般以磁盘块为数据元素进行处理
通常 1 数据元素 = 1 磁盘块/内存页
也可以更小 (=1 记录)或更大 (=1 关系) - 事务具有四个特性: ACID特性
原子性Atomicity
一致性Consistency
隔离性Isolation
持久性Durability - 故障恢复涉及到如何保证原子性和持久性
数据库的故障及其影响
- 事务故障
某一个程序(事务)自身运行错误所引起的故障
影响该程序(事务)本身 - 系统故障
由于掉电、非正常关机等所引起的故障
影响正在运行的事务以及数据库缓冲区, 数据库缓冲区将涉及正在运行和已经运行的事务 - 介质故障
由于介质损坏等所引起的故障
影响是全面的,既影响内存中的数据, 又影响介质中存储的数据
2.数据库故障恢复的宏观思路
- 数据库故障恢复
把DB由当前不正确状态恢复到已知为正确的某一状态。
需要保证事务的:
原子性:事务的所有操作,要么全都执行,要么全都不执行。
持久性:已提交的事务对数据库产生的影响是持久的,未提交的事务对数据库不应有影响。 - 事务故障的恢复
事务故障可通过重做事务(Redo)和撤消事务(Undo)来恢复。
重做事务可保证已提交事务的持久性,而撤销事务则消除未提交事务的影响
系统故障恢复
运行日志(System Log)
运行日志是DBMS维护的一个文件,该文件以流水方式记录了每一个事务对数据库的每一次操作及操作顺序
运行日志直接写入介质存储上,会保持正确性
当事务对数据库进行操作时:先写运行日志;
写成功后,再与数据库缓冲区进行信息交换
系统故障可通过运行日志来恢复
按照运行日志记录的事务操作顺序重做事务(当事务在发生故障时已正确结束)或撤消事务(当事务在发生故障时未结束)但故障恢复是需要时间的
运行日志保留了若干天的记录,当发生系统故障时应从哪一个点开始恢复呢?DBMS在运行日志中定期的设置和更新检查点(checkpoint)
检查点是这样的时刻: 在该时刻, DBMS强制使内存DB Buffer中的内容与介质DB中的内容保持一致,即将DB Buffer更新的所有内容写回DB中;
检查点表征了:在检查点之前内存中数据与介质中数据是保持一致的系统故障的恢复
检查点之前结束的事务不需要恢复(已经写回DB)
检查点之后结束或发生的事务需要依据运行日志进行恢复(不能确定是否写回DB):
故障点前结束的重做,故障点时刻未结束的撤消
介质故障恢复副本(Copy)
在某一时刻,对数据库在其他介质存储上产生的另一份等同记录
用副本替换被损坏的数据库
介质故障的恢复
用副本替换被破坏的数据库
由于介质故障影响全面, 在用副本恢复后还需要依据运行日志进行恢复如何确定备份的时刻: 转储点
过频,影响系统工作效率;过疏,会造成运行日志过大,也影响系统运行性能
备份转储周期与运行日志的大小密切相关,应注意防止衔接不畅而引起的漏洞
3.小结
三种类型故障: 事务故障、 系统故障和介质故障
三种恢复手段: 事务的撤消与重做, 运行日志和备份
两个重要时刻: 检查点和转储点
(P72-73)数据库系统下-数据库事务处理技术(故障恢复)相关推荐
- (P38-45)数据库系统下-数据库查询实现算法-两趟扫描算法
文章目录 1.整个关系操作存在的问题 2.两趟算法的基本思路 3.两阶段多路归并排TPMMS 4.更大规模数据集的排序问题-多趟/多阶 5.基于排序的两趟扫描算法 6.基于散列的两趟扫描算法 7.小结 ...
- 腾讯与中国人民大学开源最新研究成果:3TS腾讯事务处理技术验证系统
作者:李海翔,腾讯TEG数据库技术专家 一个是全球领先的科技公司,一个是中国数据库基础学术研究的摇篮,近日,中国人民大学-腾讯协同创新实验室正式举行揭牌仪式.据了解,双方已聚焦在数据库基础研究领域进行 ...
- 【大咖有约】华为叶涛:数据库事务处理的原理与实例剖析
华为数据库高级工程师叶涛先生将作为DTCC 2016中国数据库技术大会特邀嘉宾出席.并将于5月13日大会"数据库内核技术"专场分享题为<数据库事务处理的原理与实例剖析> ...
- 数据库系统概论(第十章: 数据库恢复技术)
第十章 数据库恢复技术 10.1 事务的基本概念 10.1.1.事务 1.事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位. 2 ...
- 数据库系统丨数据库常用恢复技术
文章目录 0. 概述 1. 数据转储 [1] 数据转储的概念 [2] 静态转储和动态转储. [3]海量转储和增量转储 [4] 数据转储方法 2. 登记日志文件 [1] 以记录为单位的日志文件 [2] ...
- 数据库系统概论--(第七章)数据库恢复技术
事务处理技术.事务是一列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理技术主要包括数据库恢复技术和并发控制技术.数据库恢复机制和并发控制机制是数据库管理系统的重要组成部分. 事务的基本概念 1 ...
- 最新开源:3TS腾讯事务处理技术验证系统(下)
作者:李海翔,腾讯TEG数据库技术专家 近日,中国人民大学-腾讯协同创新实验室正式举行揭牌仪式.据了解,双方已聚焦在数据库基础研究领域进行了多年的前沿产学研合作,以及数据库人才合作培养计划,在推进数据 ...
- 数据库系统概论(第十章数据库恢复技术)
第10章 数据库恢复技术 事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术. 10.1 事务的 ...
- 数据库系统概论:第十章 数据库恢复技术
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术. 10.1 事务的基本概念 事务:是用户定义 ...
最新文章
- 关于丢番图方程x^2-dy^2=-1
- CRM WebClient UI的浏览器打印实现
- dell服务器硬盘驱动器,DELL服务器WindowsServer2018系统安装-解决找不到安装在计算机的上地硬盘驱动器安装无法继续,要退出请按F3.doc...
- HttpClient 4 API –获取状态码-getStatusLine()。getStatusCode()示例
- android如何删除项目,AndroidStudio中怎样删除项目
- 选择让孩子练习羽毛球的家长好好看看!
- python对象使用
- ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
- Active Directory 灾难恢复
- 查询ORACLE数据库操作记录
- docker-compose listing workers for Build: failed to list workers
- 从0开始学习scrapy框架——(六)item的实例——阳光政务平台爬虫
- 文件系统读写性能测试实战
- 蓝桥杯pcf8591读和写
- 电脑无法显示计算机,U盘插在电脑无法显示盘符怎么办的解决办法
- MacTex 使用教程
- Python Scrapy - Ins爬虫
- MySQL练习(一)
- idea 导入 vue项目 improt全都报红
- 利用OBS定时录制功能下载任何视频