基于日志事务的数据库恢复技术
数据库恢复技术
![数据库恢复技术](https://img.taocdn.com/s3/m/dc539ee24793daef5ef7ba0d4a7302768f996f5b.png)
数据库恢复技术---恢复内容开始---数据库恢复技术事务:是⽤户定义的⼀个数据库操作序列,这些操作要么全做,要么全不做,是⼀个不可分割的⼯作单位。
事物的 ACID 特性:原⼦性、⼀致性、隔离性、持续性。
恢复的实现技术:建⽴冗余数据 -> 利⽤冗余数据实施数据库恢复。
建⽴冗余数据常⽤技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记⽇志⽂件。
ACID特性1. 原⼦性(Atomicity)⼀个原⼦事务要么完整执⾏,要么⼲脆不执⾏。
这意味着,⼯作单元中的每项任务都必须正确执⾏。
如果有任⼀任务执⾏失败,则整个⼯作单元或事务就会被终⽌。
即此前对数据所作的任何修改都将被撤销。
如果所有任务都被成功执⾏,事务就会被提交,即对数据所作的修改将会是永久性的。
2. ⼀致性(Consistency)⼀致性代表了底层数据存储的完整性。
它必须由事务系统和应⽤开发⼈员共同来保证。
事务系统通过保证事务的原⼦性,隔离性和持久性来满⾜这⼀要求; 应⽤开发⼈员则需要保证数据库有适当的约束(主键,引⽤完整性等),并且⼯作单元中所实现的业务逻辑不会导致数据的不⼀致(即,数据预期所表达的现实业务情况不相⼀致)。
例如,在⼀次转账过程中,从某⼀账户中扣除的⾦额必须与另⼀账户中存⼊的⾦额相等。
3. 隔离性(Isolation)隔离性意味着事务必须在不⼲扰其他进程或事务的前提下独⽴执⾏。
换⾔之,在事务或⼯作单元执⾏完毕之前,其所访问的数据不能受系统其他部分的影响。
当我们编写了⼀条 update 语句,提交到数据库的⼀刹那间,有可能别⼈也提交了⼀条 delete 语句到数据库中。
也许我们都是对同⼀条记录进⾏操作,可以想象,如果不稍加控制,就会出⼤⿇烦来。
我们必须保证数据库操作之间是“隔离”的(线程之间有时也要做到隔离),彼此之间没有任何⼲扰。
4. 持久性(Durability)持久性表⽰在某个事务的执⾏过程中,对数据所作的所有改动都必须在事务成功结束前保存⾄某种物理存储设备。
SQL SERVER2005基于事务日志的备份与恢复深入研究①
![SQL SERVER2005基于事务日志的备份与恢复深入研究①](https://img.taocdn.com/s3/m/7ef497220066f5335a81213c.png)
务 的事务 I D、事务名 以及 同一事务前一条 日志记录 的
L S N 等众 多信 息. 在 日志记录 中包含 同一事务上一条
日志文 件所包含 的 V L F s数 目,因为性 能等原 因
不可 能无 限增长,因此,为了重复利用有限 V L F s 的空 间,需要将一些对于保证事务 AC I D 属性无关紧要 的 日志记 录从 V L F s 中清除 出去( 日志截断) 或者将这些
VL F 1又 允许覆 盖重写的话,则会对 VL F 1再次写入.
次C h e c k p o i n t 时,日志文件 中还 未结束 的事务( 活动事 务1 当 中 最 老 的 一个 事 务 的起 始 L S N 和 最 后 一 次 C h e c k p o i n t 操作本 身的起始 L S N 两者 中的较小者. 对 于上面 的 日志文件 结构 图,最老活动事务( 事务 2 ) 的开 始L S N1 4 4 小于最后 C h e c k p o i n t 的起 始 L S N1 5 1 ,因此 Mi n i mu m R e c o v e r y L S N 就是事务 2的起始 L S N1 4 4 . 随着当前数据 库未提 交事务的不断提 交,日志文件 中 最老活动事 务的不断易主以及 C h e c k p o i n t 的不断执行,
2 0 1 3年 第 2 2卷 第 6 期
h t t p : / / w , 、 c - S — a . O 唱. c n
计 算 机 系 统 应 用
S Q L S e r v e r在写事务 日志到 日志文件时,先写第
一
Mi n i m u m R e c o v e y r L S N( Mi n L S N) 是在崩溃恢 复
数据库恢复的基本技术
![数据库恢复的基本技术](https://img.taocdn.com/s3/m/116e4e1b0622192e453610661ed9ad51f01d54e4.png)
数据库恢复的基本技术数据库恢复是指在数据库发生故障或损坏后,通过一系列的技术手段将数据库恢复到正常运行状态的过程。
数据库恢复技术主要包括备份和恢复、事务日志恢复以及物理和逻辑恢复等。
本文将分别介绍这些基本的数据库恢复技术。
1.备份和恢复技术备份和恢复是数据库恢复的最基本方法。
备份指将数据库的原始数据或者副本复制到其他存储介质中,以防止原始数据丢失或损坏。
常见的备份方式包括完全备份和增量备份。
完全备份是将整个数据库完全复制到备份介质,而增量备份则是只备份自上次备份以来发生变化的数据。
当数据库发生故障时,可以通过还原备份数据来恢复数据库。
2.事务日志恢复技术事务日志是数据库中记录每一次事务操作的日志,包括事务开始、事务结束和对数据库进行的修改操作。
事务日志恢复技术是通过分析事务日志记录来实现数据库的恢复。
当数据库发生故障时,可以通过重放事务日志中的操作来恢复数据库到故障发生前的状态。
事务日志恢复主要包括正向恢复和反向恢复两种方式。
正向恢复是从备份数据开始,按照日志记录的顺序逐步重放操作,直到故障点之后的操作。
反向恢复则是从故障点开始,按照日志记录的顺序逐步撤销操作,直到备份数据的状态。
3.物理恢复技术物理恢复是指将数据库的物理文件从损坏或错误状态恢复到正常状态的过程。
常见的物理恢复技术包括点备份和增量备份恢复、崩溃恢复以及校验和恢复等。
点备份和增量备份恢复是通过使用备份数据和增量备份数据来恢复数据库。
崩溃恢复是指在数据库崩溃、主机断电等突发情况下,通过恢复到最后一次一致状态来保护数据的完整性。
校验和恢复是通过校验和验证来检测和纠正物理文件的错误,以保证数据的一致性和完整性。
4.逻辑恢复技术逻辑恢复是指通过使用数据库的逻辑结构和操作来恢复数据库。
常见的逻辑恢复技术包括数据导入和导出、数据转换以及数据修复等。
数据导入和导出是将数据库中的数据导出为文本文件或其他格式,然后再将导出的数据导入到数据库中。
数据转换是指将数据库中的数据转换为其他数据库或应用程序所需的格式。
数据库异常处理与恢复技术
![数据库异常处理与恢复技术](https://img.taocdn.com/s3/m/25179c3a178884868762caaedd3383c4bb4cb403.png)
数据库异常处理与恢复技术数据库作为各类信息管理系统的核心,承载着众多重要数据。
然而,在长期运行的过程中,难免会遇到各种异常情况,如数据丢失、损坏或意外删除等,给信息系统的正常运行带来很大风险。
为了保障数据的安全和可靠性,数据库异常处理与恢复技术应运而生。
数据库异常处理主要涉及日常监控、异常检测和紧急处理等环节。
首先,为了及时发现异常情况,数据库管理员需要定期进行监控。
监控内容包括数据库连接情况、性能指标(如CPU使用率、内存利用率等)、错误日志等。
通过监控,管理员能够实时掌握数据库的运行状况,预警并及时解决潜在问题。
当异常情况发生时,数据库管理员需要进行异常检测,找出导致异常的原因。
常见的异常情况包括数据丢失、数据损坏和数据意外删除。
对于数据丢失和数据损坏,管理员可以通过数据库备份来进行恢复。
而对于数据意外删除这类错误操作,可以借助事务日志来实现数据的恢复。
在进行异常处理前,需先了解数据库事务的概念。
事务是指一系列对数据库的操作,这些操作是一个逻辑单元,要么都成功执行,要么都不执行。
事务的原子性要求任何一个操作失败将导致整个事务失败。
因此,在进行异常处理时,可以根据数据库事务的特性进行相应的操作与恢复。
一种常见的数据库异常处理方式是利用数据库备份进行恢复。
数据库备份是将数据库的数据和逻辑结构备份到其他存储介质(如硬盘、磁带等)的过程。
当出现数据丢失或者数据损坏的情况时,可以通过恢复数据库备份来进行修复。
备份恢复具有保护数据完整性的优点,但缺点是需要占用大量存储空间,并且恢复数据的过程较为耗时。
另一种常用的数据库异常处理方式是利用事务日志进行恢复。
事务日志是数据库服务器记录用户事务活动和修改数据库内容的文件。
当用户执行某个操作时,比如删除了某个表中的数据,这个操作会同时被记录在事务日志中。
一旦发现错误操作,管理员可以通过回滚事务、恢复错误前的状态来达到异常处理。
除了以上常见的异常处理方式,还可以利用数据恢复工具进行数据修复。
数据库恶意事务恢复日志系统
![数据库恶意事务恢复日志系统](https://img.taocdn.com/s3/m/77e7628cb9d528ea81c779b0.png)
V_ _7 0 3 I
・
计
算
机
工
程
2 1 年 6月 01
J n 2 l u e 01
No. 2 1
Co mpu e t rEng n e i g i e rn
软件 技 术 与数据 库 ・
文章编号:l o 32( 1l_03— 3 0 _ 48o1 2_ 3 0 2 ) 0
D0I 1 . 6 0s . 03 2 . 1.20 1 9 s 0 2
1 概 述
在越来越激烈 的信息战 中,以防御为主 的安全机 制不能 避免所有 的恶意攻击 ,恶意 事务对数据库 攻击成功在某 种程
度上不可避 免…。传统 的恢复 技术 已不足 以保 护数 据库的安
作者简介 :陈 敏(94 ) 18 - ,女 ,硕 士 ,主研 方向 :数据库安全 ; Ema :ce_ i3 t c o . - i hnm n@c p. rc l g cn n
提 出扩展 的数据依赖模型 ,文献[ 提出混合 日 5 ] 志分段(yr H bi d
L gS g na o) o emett n的方法 , i 但均只 实现 了专 用环境下对读操作
p r :S L sa me t ft t g est e ifr t n stn ,wre lg gn rtra d ra o e eao.Srcue ey L n ug (Q at Q tt ns ir i ,sniv noma o et g i o e eao n ed lg g nrtr t trd Qu r a g aeS L) s e la n i i i t u
陈 榕 ,高级工程师、硕士 ;王云帆 ,工程师 收稿 日 : 001—4 期 2 1— 1 2
数据库恢复技术的探讨
![数据库恢复技术的探讨](https://img.taocdn.com/s3/m/a62ba86addccda38376baf16.png)
随着 网络 的发 展 和分 布式 数 据 库 的 E益 广泛 应 l 用 , 关分 布 式数 据库 和 并行 数 据 库 的备份 恢 复 策略 有 也成 为研 究 热点 。计 算机 系 统与其 他任 何设 备一样 容
1 数据 库 系统 故 障分类
( ) 务 故 障 。某 个 事 务在 运行 过 程 中 由于种 种 1事
据 库恢 复到 故 障发 生前 的 某个 一致 的状 态 。论述 数据 库故 障恢 复 的基 本 思想 , 对数 据库 的恢 复 实现 技术 进行探 讨 。
关 键 词 : 据 库 ; 障 ; 复 ; 储 器 数 故 恢 存
0 引言
个 一 致状 态 , 并将 崩 溃后 的数据 库 不 能使用 的时 间减
恢复性 可分 为如下 三种 :
条更 新 日志 记 录 记 录 了一个 事 务对 数 据 库 的
一
次 wi re操作 , t 它包 括如 下信 息 :
事 务标 识 符 :执 行 更新 操 作 的事 务 的惟 一 标 识
符。
操作类型: 指明更新是插入 、 删除 , 还是修改。
操 作 对 象 : 更 新 的 数 据对 象 的惟 一 标 识 , 常 被 通 是 数据对 象 在磁盘 上 的位置 。
。
旧值 : 数据 对 象更新 前 的值 。对 插入操 作 而言 , 此
项 为空 。
( ) 失性 存储 器 , 括主 存储 器 、 速缓 冲存 储 1易 包 高 器等 。存 取速 度很 快 , 并且 可 以直 接存 取 所存 储 的任 何数据 项 。系统 发 生故 障 时 , 储 在易 失性 存储 器 上 存 的数据将 丢失 。 ( ) 易失性 存 储器 , 括磁 盘 、 带 等 。磁 盘 一 2非 包 磁 般作 为联机 存储 器 , 带通 常作 为后 援 存储 器 。磁 盘 磁 比主存 可靠性 强但 比磁 带可 靠性 弱 , 两者 都可 能 出 但 现故障, 导致 信 息丢 失 。除 非 出现介 质 故 障和恶 意 攻 击, 否则非 易失存 储器 中的信息不 会丢失 。 ( ) 定存 储 器 是 一 种 理想 的存 储 器 , 中 的信 3稳 其 息永 不丢 失 。“ 不 ” 永 是相 对 的 , 理论 来说 是无 法保 从 证 的。尽 管理论 上 不 能得 到稳 定存 储 器 , 可 以使用单一逻辑 储数据库 的存储设备故障。 这类故障比前两类故障发 工作单元的一个程序执行单元 。 从数据库管理系统 内
数据库备份与恢复技术手册
![数据库备份与恢复技术手册](https://img.taocdn.com/s3/m/7f16eee6dc3383c4bb4cf7ec4afe04a1b071b0ec.png)
数据库备份与恢复技术手册数据库备份与恢复是数据库管理中至关重要的一部分,它涉及到数据的安全性和可靠性。
本技术手册旨在为数据库管理员提供数据库备份与恢复的详细步骤和技术要点,确保数据库能够在灾难事件发生后尽快恢复,并保护数据的完整性。
第一部分:备份1. 定期备份数据库备份应该成为日常操作的一部分。
建议将备份计划定期安排,以确保重要数据的安全。
可以根据业务需求和数据敏感性来决定备份频率,如每天、每周或每月。
2. 分级备份分级备份包括完全备份和增量备份。
完全备份将整个数据库备份到磁盘或磁带上,而增量备份只备份自上次备份以来发生的变化部分。
通过分级备份可以节省存储空间和备份时间。
3. 存储介质选择选择适合的存储介质对于数据库备份至关重要。
可选的存储介质包括本地磁盘、网络存储设备和云存储服务。
需要考虑存储容量、读写速度和数据安全性等因素。
4. 备份验证备份完成后,验证备份文件的完整性和可用性至关重要。
可以通过恢复一个样本数据库来确认备份文件是否可以成功恢复。
第二部分:恢复1. 选择恢复点当数据库出现故障或数据丢失时,需要选择一个合适的恢复点。
可以根据备份的时间戳或事务日志来确定最近的备份点。
2. 数据库还原数据库还原是将备份数据重新加载到数据库中的过程。
根据选择的恢复点,可以使用备份文件进行完全还原或增量还原。
还原过程需要保证数据库事务的一致性。
3. 日志恢复在数据库故障或崩溃后,可能存在未提交的事务或部分事务记录丢失的情况。
通过应用事务日志,可以将数据库恢复到最近的一致状态。
4. 测试恢复过程在实际灾难发生之前,测试恢复过程是非常重要的。
定期进行恢复测试,可以帮助发现备份和恢复过程中的潜在问题,并及时进行修复。
第三部分:最佳实践1. 多重备份为了数据安全和可靠性,建议实施多重备份策略。
除了常规的定期备份,可以考虑使用磁带库、远程备份和异地备份等方式。
2. 数据库容灾数据库容灾是一种通过在远程地点建立热备份数据库来保障系统可用性的方法。
数据库恢复技术有哪些
![数据库恢复技术有哪些](https://img.taocdn.com/s3/m/39aa640b6ad97f192279168884868762caaebbe5.png)
数据库恢复技术有哪些数据库恢复技术有:1、数据转储,即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。
2、登记⽇志⽂件,⽇志⽂件是⽤来记录事务对数据库的更新操作的⽂件,设⽴⽇志⽂件可以进⾏事务故障恢复、系统故障恢复、协助后备副本本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
数据库恢复概述 数据库管理系统必须具有把数据库从某⼀错误状态恢复到某⼀已知的正确状态的功能,这就是数据库的恢复。
恢复⼦系统是数据库管理系统的⼀个重要组成部分,⽽且还相当庞⼤,常常占整个系统代码的百分之⼗以上。
数据库系统采⽤的恢复技术是否⾏之有效,不仅对系统的可靠程度起着决定性作⽤,⽽且对系统的运⾏效率也有很⼤影响,是衡量系统性能优劣的重要指标。
<h梵蒂冈介质故障 系统故障称为软故障,介质故障称为硬故障。
硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬时强磁场⼲扰等。
这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
计算机病毒 总结各类故障,对数据库的影响有两种可能性。
⼀是数据库本⾝被破坏。
⼆是数据库没有被破坏,但数据可能不正确,这时由于事务的运⾏被⾮正常终⽌造成的。
恢复的实现技术恢复机制涉及两个关键问题:1、如何建⽴冗余数据;2、如何利⽤这些冗余数据实施数据库恢复。
建⽴冗余数据最常⽤的技术是数据转储和登记⽇志⽂件。
通常在⼀个数据库系统中,这两种⽅法是⼀起使⽤的。
数据转储数据转储是数据库恢复中采⽤的基本技术。
所谓转储即DBA定期将整个数据库复制到磁带或另⼀个磁盘上保存起来的过程。
这些备⽤的数据成为后备副本或后援副本。
转储可以分为静态转储和动态转储。
静态转储是在系统中⽆运⾏事务时进⾏的转储操作。
即转储操作开始的时刻,数据库处于⼀致性状态,⽽转储期间不允许对数据库的任何存取、修改活动。
显然,静态转储得到的⼀定是⼀个数据⼀致性的副本。
动态转储是指转储期间允许对数据库进⾏存取或修改。
Oracle基于事务日志的数据恢复
![Oracle基于事务日志的数据恢复](https://img.taocdn.com/s3/m/825bec18a216147917112875.png)
性, 甚至破坏数据库 , 使数据库中全部或部分数据丢
事务涉及的数据库对象以及在这个对象上执行 的操
失。因此当发生上述故 障后 , 希望能重构这个完整
作类别 、 操作前后 的数据 映像 、 事务的状态等信息 )
个特殊 的数据项 以二进制的方式记录下来 , 的数据库 , 处理称 为数据库恢复。数据恢复是指 作为 1 该 目前绝大多数数据库系统都支持 把意外 改变或意外删除 的数据恢复为原貌 , 恢复过 这就是事务 日志 ,
关键词 : O al; 数据恢复 ; 归档 日志 ; 事务处理 rc e 中图分类号 : T31 F1 文献标识码 : A 文章编号 :09— 5 5 2 o )4- 19一 3 10 37 ( o6 o 0 2 o
RES OR T ATl T ON OF DA A
B ASED ON TRANSACTI CORD I ON RE N ORACL E
引言
1 事务 处理 及其 事 务 日志
当我们使用 1 个数据库时, 总希望数据库的内 事务是数据库执行数据处理 的基本单位。在执 容是可靠 的、 正确 的, 由于计算机系统的故障 ( 但 硬 行 1 个事务时, 如果 我们把该事务处理 ( r sco Ta a i n tn 件故障 、 软件故障、 网络故障、 进程故障和系统故障) Poes g从开始 到结束所 涉及 的操作 信息 ( r sn ) c i 包括
10 3
内 蒙 古 农 业 大 学 学 报
20 0 6拄
录存档。一旦当前 日志组写满 了新数据 , 马上发 则
生1 次“ 志切换 ” 服务器继续将新 的事务于事务 日志的数据恢 复 r e c
数据库数据恢复技巧
![数据库数据恢复技巧](https://img.taocdn.com/s3/m/2d807dd34bfe04a1b0717fd5360cba1aa9118c5d.png)
数据库数据恢复技巧近年来,随着信息技术的飞速发展,数据库的应用越来越广泛,而数据丢失或损坏也成为数据库管理中的一大难题。
为了解决这一问题,数据库数据恢复技巧应运而生。
本文将为您介绍几种常见的数据库数据恢复技巧,帮助您在面对数据损失时能够迅速恢复数据。
一、备份和恢复技巧备份是数据库管理中最基础也是最重要的一环。
通过定期备份数据库,可以最大程度地保护数据免遭损失。
在数据丢失的情况下,可以通过备份数据的恢复来回复最新的数据库状态。
以下是一些备份和恢复技巧:1. 定期备份数据库定期备份数据库是保证数据完整性和安全性的首选方法。
根据需求,可以选择全量备份或增量备份。
全量备份将数据库的全部数据和对象进行备份,而增量备份只备份最新更改的数据和对象。
根据实际情况,合理选择备份频率,以确保数据可靠性。
2. 使用不同的存储介质将备份文件存储在不同的地点和存储介质中,可以提高数据的安全性。
例如将备份文件存储在云服务中,或者使用外部硬盘等存储设备备份数据,以防止单点故障对数据的影响。
3. 定期测试恢复过程定期测试数据库的恢复过程可以提前发现备份或恢复过程中的问题,并及时修复。
通过模拟数据丢失的情况,测试恢复过程的有效性和可靠性,确保备份数据能够在需要时成功恢复。
二、事务日志技巧事务日志是数据库管理中的另一项重要组成部分,它记录了数据库的操作历史和变化。
在数据丢失或损坏的情况下,可以通过事务日志来还原数据库到之前的某个时间点。
以下是一些事务日志技巧:1. 开启事务日志功能在数据库中开启事务日志功能,可以实时地记录数据库的操作历史和变更。
这使得在数据丢失的情况下,可以利用事务日志来还原数据库到某个时间点,尽量减少数据损失。
2. 定期备份事务日志除了备份数据库外,备份事务日志也是非常重要的。
定期备份事务日志可以保证在数据丢失时,仍然能够利用事务日志进行数据恢复。
3. 控制事务日志的大小和数量事务日志的大小和数量会对数据库的性能产生影响,并占用一定的存储空间。
数据库的恢复技术
![数据库的恢复技术](https://img.taocdn.com/s3/m/7ddfae355a8102d276a22fba.png)
一、数据库恢复理论知识1、数据库恢复:DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态的功能。
2、数据库恢复机制包括“一个数据库恢复子系统”和“一套特定的数据结构”。
而其基本原理是重复存储数据,即“数据冗余(data redundancy)”3、恢复机制涉及两个关键的问题①如何建立冗余数据。
②如何利用这些冗余数据实施数据库恢复。
4、建立冗余数据最常用(也是最基本)的技术就是:数据转储和登陆日志文件。
(一般两种技术一起使用)5、基本概念①数据转储:DBA(Database Administrator)定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。
这些备用的数据文本称为后备副本或后援副本举例子:假定有三个瞬时时间t1<t2<t3。
其中t1时刻DBMS停止事务的运行而开始进行数据的转储,在到达时间t2的时候转储完毕,当到达t3的时候数据库发生故障,因此为了恢复到数据库发生故障的前一刻t(即t2<t<t3),DBA就要重装数据库后备副本,将数据库恢复到t2时刻的状态,然后重新运行自t2时刻到t3时刻的所有更新事务,这样子就可以完成数据库的恢复。
值得注意的是:转储是十分消耗时间和资源的,所以一般不会频繁运行,一般转储周期(为几小时、几天、也可以是几个月)还得选择适合你当前数据库的那个时间。
从上面中的介绍可以看出:转储需要在停止了所有事务时才可以进行,这种情况我们称之为“静态转储”,为了克服这种转储,数据库另有一种方式为“动态转储”,即转储和用户事务可以并发执行,而且能够恢复到用户事务更新到故障的前一刻。
转储的时候会涉及数据的多少问题:因此会有“海量转储”和“增量转储”两种方式。
海量:即每一次转储全部的数据,而增量:每一次只转储上一次转储后的更新过的数据。
用一张表来简单描述为:②登录日志文件(可以协助或备副本进行介质故障恢复)基本概念:日志文件:是用来记录事务对数据库的更新操作的文件。
数据库的恢复策略
![数据库的恢复策略](https://img.taocdn.com/s3/m/3f09b91fcd7931b765ce0508763231126edb772f.png)
数据库的恢复策略事务故障的恢复事务故障是指事务在运⾏⾄正常终⽌点前被终⽌,这时恢复⼦系统应利⽤⽇志⽂件撤销(UNDO)此事务已对数据库进⾏的修改。
系统恢复的步骤:(1)反向扫描⽇志⽂件(即从最后向前扫描⽇志⽂件),查找该事物的更新操作。
(2)对该事务的更新操作执⾏逆操作。
即将⽇志记录中"更新前的值"写⼊数据库。
这样如果记录中是插⼊操作,则相当于做删除操作;若记录中是删除操作,则做插⼊操作;若是修改,则相当于修改前值代替修改后值。
(3)继续反向扫描⽇志⽂件,查找该事务的其他更新操作,并作同样处理。
(4)如此处理下去,直⾄读到此事务的开始标记,事务故障恢复就完成了。
系统故障系统故障的恢复是由系统在重新启动时候⾃动完成的,不需要⽤户⼲预。
系统的恢复步骤是:(1)正向扫描⽇志⽂件(即从头扫描⽇志⽂件),找出在故障发⽣前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记⼊重做(REDO)队列。
同时找出故障发⽣时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,⽆相应的COMMIT记录),将其事务标识记⼊撤销队列。
(2)对撤销队列中的各个事务进⾏撤销(UNDO)处理。
进⾏UNDO处理的⽅法是,反向扫描⽇志⽂件,对每⼀个UNDO事务的更新操作执⾏逆操作,将将⽇志记录中"更新前的值"写⼊数据库(该⽅法和事务故障的解决⽅法⼀致)。
(3)对重做队列中的各个事务进⾏重做(REDO)处理。
进⾏REDO处理的⽅法是:正向扫描⽇志⽂件,对每⼀个REDO事务从新执⾏⽇志⽂件登记的操作。
即将⽇志记录中"更新后的值"写⼊数据库。
具有检查点的恢复技术利⽤⽇志技术进⾏数据库恢复时,恢复⼦系统必须搜索⽇志,确定哪些事务需要REDO,哪些事务需要UNDO。
⼀般来说,需要检查⼀是搜索整个⽇志将消耗⼤量的时间。
基于逻辑日志的内存数据库恢复子系统设计
![基于逻辑日志的内存数据库恢复子系统设计](https://img.taocdn.com/s3/m/5bc3af21bd64783e09122b6c.png)
本文 详细 阐述 采用基 于 逻辑 日志 (o ia lg ig 的恢 复 子 系统 , 出了基 于 逻辑 日志 的检 验 点策 略 及 1gcl o gn ) 给
故 障恢复 策 略.
1 基 于 逻 辑 日志 恢 复 子 系统 L DMRS
恢 复 子 系统 由一个 主节 点和 两个 副节 点 组 成 , 主节 点 向用 户提 供 服 务 , 两 个 副 节 点 不 向用 户 提 供 服 而 务, 它们 只为 主节点 提供 数据 刷 出和故 障恢 复服 务. 正常 情 况下 , 节 点 响应 用 户 的请 求 , 行 事务 , 节 点 主 执 副
收稿 日期 : 0 卜0 - 8 2 1 32 基 金项 目 : 国家 自然科 学 基金 项 目 (0 7 0 1 F 2 1 ; 徽 省 池 州 学 院 院级 科 研 重 点 项 目 ( 0 0 ) 6832/ 00)安 XK 9 2 .
作 者 简 介 : 文亮 (9 9) 男 , 南 娄 底 人 , 士 , 州 学 院 数学 与计 算 机 系讲 师 , 袁 1 7一 , 湖 硕 池 主要 从 事 现 代 数 据 库 理 论 研 究
维护 事务 日志 和执 行外存 数 据库 的更 新. 当故 障发生 , 利用 某一 个 副节点 来恢 复 主节点 , 图 1所示 . 如
该子 系统 中 , 事务管理模块为每一个事务单独分 配一个私 有 日志缓 冲区和私有数 据缓 冲区 , 并采 用延迟 的数 据库修 改策 略. 对每一个事务的操作 ( 包括读操作 、 写操作 、 事务提交 、 事务夭折 )先是把 事务所更新 的数据放在 其 , 私有数据缓 冲区内, 日志管理器负责为该事务在私有 日志缓 冲区创建一 条对应 的逻辑 日志记 录. 当一个事务 的提 交 日志被写入其私有 日志缓冲区后 , 私有 日志缓 冲区 的内容才 同时刷到 两个副节点 的 日志缓 冲区 , 副节点负责将 其 日志缓冲区内容刷 到外存. 该事务 的 日志写完后 , 其私有数据缓冲区的更新才能被写入到 MMD . B
数据库的备份和恢复
![数据库的备份和恢复](https://img.taocdn.com/s3/m/4ce05a080740be1e650e9aee.png)
数据库运行过程 中 会产生事务故障 、系统故障 、磁盘故 障。 (i)START) 又 包含 (T(i) COMMIT)> 则 事务 T(i)必 须 重做 。
DBMS应 能 把 数 据从 不 正 确 、被 破 坏 的状 态 ,恢 复 到最 近 一 个 正
事务重做时可能还会发生故障 再 需要 重做 对事务的多次重做 。 样 的,在事务运行期间不允许修 改页表 的内容 在执行写操 作时
事 务 T(i)需 要 重做 的 充 分 条 件是 日 志 中包 含 事 务 T(i)的 日志 记 录 有可能改变 当前页表的内容 。所 有 input和 output操 作都是在 当前
维普资讯
圈回国国倚 回悠 缉
肖 英 蒋 熔 井 冈山学 院信 息 科学 与 传媒 学院
[摘 要 ]数 据库 的 备份 和 恢 复技 术 是 数 据 库 系统 中非 常 重要 的技 术 ,文 中探 讨 了数 据 库 的备 份 和 恢 复技 术 ,具体 介 绍 了Sql Server 数 据 库 的 备 份 和 恢 复技 术 。
原 子 性 。
记 录 ” 到 稳 定 存 储 器 的 日 志 中 ;第 四把 稳 定 存 储 器 的 日 志 中检 查
在 事务未完成前系统发生故 障 或事务异常 中止时 修 改的 点 记 录 的 地 址 写 到 “重 新 启动 文 件 中 。
信 息 只 写入 日志 ,尚 未 写到 磁 盘 此 时可 忽 视 日志 中 的信 息 。考
一 个 日志 记 录 (T(i)START) 执 行 write(X) 将会 写一 个 日 志记 从 重新启动文件”中获得最近检查点记录 的地址 从 日志中找
数据库的备份与恢复
![数据库的备份与恢复](https://img.taocdn.com/s3/m/bea80818650e52ea551898ea.png)
操作: 在企业管理器中打开服务器→数据库→选中 要恢复的数据库→右键→所有任务→还原数 据库
五、SQL Server 2000数据库的 备份与恢复组合策略
五、SQL Server 2000数据库的 备份与恢复组合策略
五、SQL Server 2000数据库的 备份与恢复组合策略
1、备份方案
3、什么是恢复
恢复就是把遭受破坏或丢失数据或出现 错误的数据库恢复到原来的正常状态。
二、数据库备份策略
1、完全数据库备份(Database Backups)
是指对数据库的完整备份,包括用户表、 系统表、索引、视图和存储过程等所有数据 库对象。 在备份的过程中花费的时间较长,备份 文件占用的空间也较大,一般推荐一周做一 次完全数据库备份,恢复时只需恢复最后一 次备份就可以。
•要恢复到10:30的状态
应该为完全数据库备份1+差异数据库备份1
•要恢复到11:00的状态
应该为完全数据库备份1+差异数据库备份2
•要恢复到12:30的状态
应该为完全数据库备份2+差异数据库备份3
五、SQL Server 2000数据库的 备份与恢复组合策略
4、完全+日志数据库备份与恢复
五、SQL Server 2000数据库的 备份与恢复组合策略
二、数据库备份策略
•注意:
不能单独恢复差异备份,因为差异备份是 以一次完全数据库备份作为基础的,如果我们 没有对数据库进行一次完全数据库备份,是不 能进行差异备份的。 差异备份也存在和数据库备份一样的问题, 就是不能保存最后一次差异备份以后对数据库 所做的所有改动。
二、数据库备份策略
3、事务日志备份 (Transaction Log Backup)
数据库故障恢复策略
![数据库故障恢复策略](https://img.taocdn.com/s3/m/161bccb76429647d27284b73f242336c1eb9301c.png)
数据库故障恢复策略在现代信息技术时代,数据库成为了企业存储和管理数据的核心工具。
然而,由于各种原因,数据库可能会发生故障,包括硬件故障、软件错误、人为失误等。
为了确保数据库的稳定性和可靠性,必须制定合适的故障恢复策略。
数据库故障恢复策略是一套操作和流程,旨在在数据库发生故障时尽快将其恢复到正常工作状态,以确保数据的完整性和可用性。
下面将介绍几种常见的数据库故障恢复策略。
1.备份和恢复策略备份和恢复策略是最基本和常见的数据库故障恢复策略。
通过定期备份数据库,可以在发生故障时恢复到最近一次备份的状态。
备份可以是完全备份或增量备份,取决于数据库的大小和重要性。
在备份数据库时,应该选择可靠的备份介质,并确保备份文件的完整性和安全性。
当数据库发生故障时,可以使用备份文件进行恢复操作,将数据库恢复到最近一次备份的状态。
2.事务日志恢复策略事务日志是数据库中记录所有变更操作的重要组成部分。
事务日志恢复策略利用事务日志记录的信息,可以将数据库恢复到发生故障之前的状态。
在数据库发生故障时,可以通过重放事务日志中的操作来恢复数据库。
事务日志恢复策略可以实现对数据库的精确恢复,避免数据丢失。
3.镜像和复制策略镜像和复制策略是一种高可用性的数据库故障恢复策略。
通过将数据库镜像到另一个服务器或复制到多个服务器,可以在一个服务器发生故障时快速切换到备用服务器,实现数据库的连续可用性。
镜像和复制策略可以通过同步或异步方式进行,以确保数据的一致性和可靠性。
4.冷备份和热备份策略冷备份和热备份策略是备份和恢复策略的两种方式。
冷备份是在数据库停机状态下进行的备份,可以确保备份的完整性和一致性,但会中断数据库的正常运行。
热备份则是在数据库运行状态下进行的备份,可以实现零停机备份,但备份文件可能不够完整和一致。
根据实际需求和数据库的重要性,可以选择适合的备份方式。
5.故障切换和故障转移策略故障切换和故障转移策略是针对数据库服务器发生故障时的应急处理方法。
事务处理如何恢复到之前的状态?
![事务处理如何恢复到之前的状态?](https://img.taocdn.com/s3/m/993e9e96185f312b3169a45177232f60ddcce732.png)
事务处理如何恢复到之前的状态?一、故障恢复的基本原理在数据库管理系统中,事务处理是一个重要的功能。
当数据库中的事务出现故障时,如何恢复到之前的状态呢?这就需要了解故障恢复的基本原理。
故障恢复是通过日志记录和回滚技术来实现的。
具体来说,当一个事务进行修改操作时,系统会将这些修改操作记录在日志文件中。
如果事务执行过程中出现故障,系统可以通过读取日志文件中的信息,将事务进行回滚,使得数据库的状态恢复到故障前的状态。
二、故障恢复的过程故障恢复的过程是一个多步骤的过程,具体分为以下几个步骤:1. 检查点在数据库中,系统会定期地创建检查点。
检查点是一个标记点,表示数据库的一致状态。
当系统出现故障时,可以通过检查点来缩小故障范围,减少恢复的时间。
2. 分析日志当系统出现故障后,首先需要进行日志分析。
系统会读取日志文件中的信息,分析事务执行的情况,确定哪些事务是已经提交的,哪些事务是未提交的。
3. 事务回滚在确定了未提交的事务后,系统需要将这些事务进行回滚。
事务回滚是指将事务执行过程中的修改操作恢复到故障前的状态,使得数据库的状态回滚到故障前的状态。
4. 更新日志在进行事务回滚后,系统需要更新日志文件。
更新日志是指将已经回滚的事务的信息记录在日志文件中,以便以后的故障恢复。
5. 恢复数据库最后,系统需要恢复数据库的状态。
系统会根据日志文件中的信息,将数据库的状态恢复到故障前的状态。
这样,数据库就回到了故障前的一致状态。
三、故障恢复的策略在进行故障恢复时,可以采用不同的策略。
常见的策略包括正向恢复和反向恢复。
1. 正向恢复正向恢复是指从检查点开始,按照事务的提交顺序进行恢复。
具体来说,系统会根据检查点,从日志文件中读取被修改过的数据项的信息,然后按照事务的提交顺序,将这些事务的修改操作应用到数据库中。
2. 反向恢复反向恢复是指从故障发生点进行恢复。
具体来说,在日志文件中,系统会记录每个事务的开始和结束时的日志信息。
数据库的事务一致性与回滚技术
![数据库的事务一致性与回滚技术](https://img.taocdn.com/s3/m/5d66ff5ec381e53a580216fc700abb68a982ad2a.png)
数据库的事务一致性与回滚技术在计算机科学中,数据库是非常重要的数据存储和管理方式。
在一个数据库系统中,事务是指一组数据库操作的执行,被认为是一个独立的逻辑单元。
事务的一致性是指事务在执行前和执行后数据库状态的正确性和完整性。
而在事务的处理过程中,可能会出现一些错误,因此需要使用回滚技术来确保数据库的一致性和完整性。
事务一致性是指当多个操作同时执行时,数据库必须保证数据的一致性。
数据库系统通过使用不同的技术来实现事务一致性,其中最常用的技术之一是ACID原则。
ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
原子性即事务是一个不可分割的最小工作单元,只有当事务中所有操作都成功执行时,才会进行提交,否则将进行回滚。
一致性指事务的执行不能破坏数据库的完整性和约束条件。
隔离性指当多个事务同时执行时,事务之间必须相互隔离,即一个事务对其他事务的操作是不可见的。
持久性指事务提交后,对数据库的修改必须得到持久保存。
回滚技术是用于撤销已经执行的事务和将数据库恢复到事务开始之前的状态的一种技术。
在数据库中,发生错误的情况下,回滚技术可以确保数据的一致性和完整性。
以下是一些常用的回滚技术。
1. 事务日志:事务日志是一种记录数据库操作的技术。
在事务开始之前,数据库系统会创建一个事务日志文件,并将操作的详细信息和数据的旧值记录到事务日志中。
如果事务需要回滚,系统可以通过读取事务日志中的操作信息进行回滚,并将数据恢复到事务开始之前的状态。
2. 检查点:检查点是数据库中的一个固定时间点,在这个时间点之前的所有操作被认为是有效的。
在执行事务期间,数据库会定期创建检查点,以便在发生错误时可以从最近的检查点开始恢复。
如果事务需要回滚,系统可以从最近的检查点恢复并回滚未提交的事务。
3. 错误恢复:错误恢复是指数据库在发生错误时的恢复过程。
当数据库系统发现发生了错误,它会尝试通过事务的回滚来回到之前的状态。
简述数据库恢复的基本技术
![简述数据库恢复的基本技术](https://img.taocdn.com/s3/m/dff2f98f64ce0508763231126edb6f1aff007192.png)
简述数据库恢复的基本技术
数据库恢复的基本技术是指在数据库系统发生故障或者数据丢失时,通过一系列的操作手段将数据库恢复到正常使用状态的过程。
以下是数据库恢复的基本技术:
1. 数据备份:定期对数据库进行备份,将数据以某种形式存储在其他介质中,以备发生故障时进行恢复。
2. 日志记录:数据库系统会记录每一次对数据库的修改操作,并将这些日志记录到一个特定的日志文件中。
日志记录技术可以用来跟踪修改操作,并在发生故障时用于恢复。
3. 事务回滚:当发生故障或者某些操作失败时,可以通过回滚操作将数据库恢复到事务开始之前的状态。
4. 快照技术:数据库系统可以在某个时间点上将数据库保存为一个快照,当数据库发生故障时,可以将数据库恢复到这个快照的状态。
5. 崩溃恢复:当数据库系统发生崩溃或者电源故障等严重故障时,可以通过检查日志文件并进行恢复操作,将数据库恢复到一致的状态。
6. 冷备份和热备份:冷备份是在数据库系统关闭状态下进行备份,而热备份是在数据库系统运行状态下进行备份。
热备份可以减少数据库的停机时间,但需要特殊的技术支持。
7. RAID技术:RAID(冗余磁盘阵列)技术可以通过将数据分散存储在多个磁盘上,提高数据的冗余性和可靠性,从而增加数据库恢复的成功率。
这些基本技术可以根据具体的需求和数据库系统的特点进行组合和调整,以实现高效、可靠的数据库恢复。
数据库事务处理的回滚与提交操作
![数据库事务处理的回滚与提交操作](https://img.taocdn.com/s3/m/28cbb45f9a6648d7c1c708a1284ac850ad020406.png)
数据库事务处理的回滚与提交操作概述:数据库事务处理是一项重要的技术,它可以确保对数据库的操作的一致性和持久性。
在数据库事务处理中,回滚与提交操作是常见且关键的操作。
回滚操作可以撤销之前的操作,将数据库恢复到之前的状态,而提交操作则将修改应用到数据库中。
本文将探讨数据库事务处理中的回滚与提交操作的原理与应用。
一、回滚操作回滚操作是指在事务执行失败或发生意外情况时,撤销之前的操作,将数据库恢复到事务执行前的状态。
回滚操作的目的是确保数据库的一致性,并防止脏数据的产生。
当事务执行失败时,可以通过回滚操作来撤销对数据库的修改,使数据库返回到事务开始之前的状态。
回滚操作的实现依赖于数据库管理系统(DBMS)的日志机制。
在事务执行过程中,DBMS会将对数据库的修改操作记录在日志文件中。
当发生回滚操作时,DBMS根据日志文件中的信息,逆向执行相应的操作,将数据库恢复到事务开始之前的状态。
回滚操作的应用场景包括:事务执行失败、用户取消操作、系统崩溃等情况。
通过回滚操作,可以保证数据库的一致性,并防止数据丢失或错误。
二、提交操作提交操作是指在事务执行成功后,将修改应用到数据库中,使其永久生效。
提交操作的目的是将事务对数据库的修改持久保存,并使其对其他事务可见。
提交操作的实现也依赖于DBMS的日志机制。
当事务执行成功后,DBMS会将对数据库的修改操作记录在日志文件中。
在提交操作之前,数据库的修改只保存在缓冲区中,并对其他事务不可见。
通过提交操作,DBMS将缓冲区中的修改应用到数据库中,并更新日志文件。
提交操作的应用场景包括:事务执行成功、用户确认操作、系统正常关闭等情况。
通过提交操作,保证事务的结果对其他事务可见,并确保数据库的一致性。
三、回滚与提交操作的重要性回滚与提交操作在数据库事务处理中扮演着重要的角色。
它们保证了数据库的一致性和持久性,同时提供了事务的可靠性和可恢复性。
回滚操作的重要性体现在以下几个方面:1. 数据库一致性的保证:当事务执行失败或发生意外情况时,通过回滚操作可以撤销对数据库的修改,恢复数据库到事务开始之前的状态,保持数据库的一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于日志的数据库恢复
数据库系统中的非灾难性故障所导致的数据不一致问题,常用的解决方法是基于日志的恢复技术。
查阅资料,研究探讨此类恢复技术的基本方法及其实现算法。
事务日志及在数据库恢复中的作用
一、事务日志的工作原理
实际上,事务中的数据操作首先在数据库缓冲区中进行,缓冲区中有用来记录操作活动的数据页和日志页。
当事务运行到Commit Transaction时,日志页从缓冲区写入磁盘,而后数据页再从缓冲区写入磁盘,即遵循“先写日志”的原则。
如果先写了日志而没有来得及修改实际数据,则在下一次的正常启动或恢复过程中,DBMS检查日志里的记录,将数据的更新补录到数据库中。
因此遵循“先写日志”的原则,可以严格地保持事务日志和实际数据更新的一致性。
事务的所有日志记录都链接在一起,当系统出现故障时,通过恢复(前滚)或撤消(回滚)事务能够最大限度地恢复数据库。
二、基于事务日志的数据库恢复思路
假如某数据库系统在T1时刻做了一次完整的备份,由于某种原因在T2时刻(T2>T1)出现了故障,丢失了重要的数据。
一般的数据恢复思路是利用T1时刻的数据备份将数据库恢复到T1时刻的状态,T1至T2时间段更新的数据则丢失,即做到不完全恢复。
实际上如果充分利用T1至T2 时间段的事务日志,我们完全可以将数据库恢复到T2时刻的状态,即完全的数据库恢复。
因为T1至T2时间段的事务日志是按照时间顺序详细记录了这一时间段的事务处理信息,如图所示。
如果我们在T1状态的基础上,重新依次运行这些事务,就可以将数据库由T1状态逐步推演到T2时刻的状态,实现数据库的完整恢复。
此外,还可以根据需要在T1与T2之间某个时间点停留,即把数据库恢复到过去某个特定的时间点。
基于事务日志的数据库恢复技术
一、利用事务日志进行数据库恢复的操作步骤
当数据库出现故障时,恢复到当前故障点应按下面的次序进行操作:
①备份当前活动事务日志;
②还原星期一晚上22:00 创建的数据库完全备份;
③依次还原自星期一晚上22:00 后创建的差异数据库备份,直至星期二9:00 的差异备份为止;
④依次应用星期二9:10 、9:20 创建的事务日志备份
⑤应用步骤①创建的当前活动事务日志作最后还原。
ARIES 数据库恢复算法的分析
一、ARIES 简介
ARIES(Algorithm for Recovery and Isolation Exploiting Semantics) ,该算法出现于IBM 的Almaden 研究中心在1992年完成的一项名为Starburst 的大型数据库原型系统研究项目中,该算法基于后备复本和日志。
它试图以概念上相对简单且系统化的方式,提供一套能确保事务原子性和持久性的、具有良好性能的的恢复管理算法。
它能与绝大多数并发控制机制很好的协调工作。
ARIES 数据结构由日志记录、页结构、事务表与脏页表四部分组成。
二、ARIES恢复管理算法综述
当系统崩溃后重启时,恢复管理器将被激活,并按以下三个阶段进行处理:–分析(Analysis):鉴别崩溃发生时,缓冲区中的脏页和当时仍活跃的事务。
–重做(Redo):重做从日志的适当起点(比如,被修改的最早脏页对应日志记录)开始的所有动作,恢复系统到崩溃时的DB状态。
–撤消(Undo):撤消上次崩溃时所有未提交事务的动作效果,使DB只反映已提交事务的影响。
三、一个简单的ARIES日志片段示例
分析阶段将能分析识别出:
–崩溃时仍活跃事务:T1,T3;
–已提交事务T2
–崩溃时的脏页P1、P3和P5。
在重做阶段,提交事务T2的所有动作,必须按日志顺序重新应用一次。
最后,在撤销阶段,T1和T3的所有动作,必须按日志记录的相反顺序,依次逐个
撤销。
四、AREIS数据结构
ARIES数据结构由日志记录、页结构、事务表与脏页表四部分组成。
1、日志记录
日志既可为己提交事务的重做(redo)和未提交事务的撤消(undo)提供信息源,
也为介质恢复提供途径。
ARIES要对任何事务的可能引起可恢复数据对象发生改变
的操作作日志,并采用先记后写的WAL协议,日志记录之数据结构包括以下数据
域:
(1)日志顺序码(log sequence number):以下简称LSN
(2)日志类型( Type):通常有四种,即常规更新记录(Update)、补偿日志记录
(compensation log record 简称CLR)、与提交协议有关的记录(如二步提交协议中的准备提交)或非事务相关记录(如OS文件的返回)。
(3)事务标识符(Transaction ID):标识引发所记录操作的事务。
(4)前日志顺序码(Previous LSN):表示由同一事务写入的前一个日志记录的日
志顺序码。
(5)页标识符(Page ID):用于标识“更新”与“补偿”记录中的更新所作用的
页。
通常由对象标识符与页在对象中的页序号两部分组成。
(6)撤消下一个日志顺序码(UndoNext LSN):仅在补偿日志记录中使用,其给
出事务卷回过程中该事务要处理的下一个日志记录的LSN.
(7)数据(Data):用以记录所实施的更新的redo/undo数据。
2、页结构
页数据结构指在数据库的每一页辟出一块小空间作为页日志顺序码(Page-LSN)域,用以描述在该页上所作的最近的更新或补偿操作所对应的日志记录的LSN.页结
构由单一的数据域页日志顺序码组成。
3、事务表
设立该表主要用于在系统失效后的重启动恢复时跟踪记录活动事务的状态,从而为该过程要进行的撤消提供依据。
事务表的数据结构包括四个域。
其中事务标识
符和撤消下一日志顺序码同前述含义,另两个域为:
(1)状态(state):用于表示活动事务的可能状态,由于ARIES对事务的提交采用一
种类二阶段提交的协议,所以活动事务有两种可能的状态,其一为准备提交而未提
交状态,称为准备态(prepared);另一种为未准备提交(unprepared)状态。
(2)最后的日志顺序码(Last LSN):表示该事务所写的最后一个日志记录的日志顺
序码。
4、脏页表
脏页表中的每一数据项包含页标识符(Page ID)和恢复日志顺序码(Recovery LSN)两个数据域。
前者用于标识相应的脏页,后者用于指明有关该页的可能未存到稳定
存储器中的更新在日志中的开始位置。
脏页表有两种用途。
一为在系统正常运行过
程中用作缓冲区(buffer pool)脏页表,且系统在作检查点(checkpoint 或CHKPT)时,
将该表包含在其记录中。
另一用途是作为重启动(restart)脏页表以记录系统失效时
可能的脏页。
恢复前的准备工作
为满足可能的恢复之需,数据库系统在正常运行过程中,ARIES除要求系统作后备复本和为更新操作作日志外,还要设立保存点和检查点。
一、保存点
保存点( SavePoint)可在事务正常运行过程的任一点设立,每当设立保存点时,相应事务最近的日志记录的LSN被作为保存日志顺序码(Save KN)存入虚拟内存中。
以后在事务运行过程中,系统或事务均可要求将事务卷回(rollback)到任一个有效(outstanding)保存点,只要提供相应的Save KN信息。
二、检查点
由于遵循WAL规则,即使事务提交,也可能未写入稳定数据库,为减少系统在重启动恢复时的工作量,一般的DBMS在系统正常运行过程中在日志中设置检查点(checkpoint)。
检查点可以是提交一致(commit-consistent)、缓冲一致(cache-consistent)或模糊(fuzzy)形式。
ARIES 采用的模糊形式不要求作检查点时所有缓冲脏页被强制写入外存,而是借助于缓冲管理上的窃取策略,即充分利用Buffer Manager 或DB Writer 等一些系统进程在后台持续地将脏页刷出,所以检查点可在事务运行过程中异步地设立,提高了系统在作检查点时的运行效率,显得更加合理与灵活。
ARIES的检查点以写开始检查点(begin-CHKPT)日志记录为开始,然后作一个结束检查点(end-CHKPT)日志记录,在该记录中包括正常运行过程中的事务表、缓冲区脏页表以及文件映射信息(如表空间、索引空间、事务拥有的锁信息等),待所有相关的检查点信息刷入外存时,再在外存中一特定的被称为主记录(master-record)的位置存入该检查点的begin-CHKPT 的日志记录顺序码,作为重启动恢复程序的入口。
算法描述
一、分析阶段
分析阶段至少需要完成以下三个基本任务:
–确定重做阶段的日志扫描起点。
–确定崩溃时,缓冲区中的脏页。
–识别崩溃时,仍活跃的、必须撤消的事务。
分析阶段扫描处理算法
二、REDO阶段
主要任务:重复历史(重构崩溃时的状态) 具体算法描述
三、UNDO阶段处理描述。