第七章——数据恢复技术

7.1,事务

事务的概念

事务是一系列数据库操作序列,不可分割(即要么全部不做要么全做,不存在一部分做了一部分没做)。

在sql语句中,用BRGIN TRASACTION来开启一个事务,用COMMIT来提交一个事务,用ROLLBACK来表示回滚(即中途错误后撤销全部操作滚回去)。

事务的特性

四个特性:原子性、一致性(即数据库保持一致性状态)、隔离性(事务之间不干扰)、持续性(也称永久性)。


7.2,数据库恢复概述

强调了恢复是多么的重要。


7.3,故障的种类

事务内部故障

分为可以预期的和不可以预期的(银行转账的例子),通过事务撤销UNDO的方式来恢复。

系统错误(又称软故障,soft crash)

cpu故障、操作系统故障或断电等等。除了让未完成的事务撤销UNDO,还需要把已完成但是还未写入数据库的事务重做REDO。

介质故障(又称硬故障,hard crash)

就是外存故障,直接影响数据库本身以及事务,发生几率小,破坏性大。

计算机病毒

你懂的。


7.4,恢复的实现技术

建立冗余

1,通过数据转储建立后备副本,在发生故障时载入后备副本,然后重做事务,使数据库恢复到一致性状态。转储分为两种状态(两态),静态转储和动态转储,静态转储是事务和转储串行进行互不干扰打断,动态转储是事务和转储并行进行。由于动态转储可能会导致过时数据,所以配合记录事务操作的登录日志才可以完全达到一致性的状态。

2,转储还可以分为两种方式(两式),海量转储和增量转储,即使转储全部数据库信息还是部分修改的信息。对于那些数据库本身极其庞大且事务操作频繁的数据库来说,显然增量存储是更好的选择。

3,由于两式两态,所以组合起来有四种转储方式。

登录日志文件

1,两类,以记录为单位的日志文件和以数据块为单位的日志文件。

2,记录型日志的内容包括:事务标识、操作类型(增删改)、操作对象、旧值、新值。数据块型日志只包括:事务标识和被更新的数据块(新旧都有)。

3,动态转储必须用日志,静态也可以用。

4,登记日志文件两大原则:1,严格按事务的执行时间次序;2,先写日志,再写数据库。


7.5,恢复策略

对于事务内部故障

四步走:1,反向扫描日志文件,找到更新操作;2,对更新操作进行逆向操作,恢复旧值;3,继续逆向找下一个更新操作,按照2处理;4,直到事务开始标记,该事物恢复搞定。

对于系统故障

三步走:1,正向扫描日志,对于已完成事务,丢入REDO队列,对于未完成事务,丢入UNDO队列;2,对于UNDO队列的事务,按照事物内部故障的逆向更新操作的方式进行恢复;3,对于REDO队列,进行正向更新曹组,将新值重新写入数据库。

对于介质故障

两步走:1,重载数据库后备副本;2,重载日志文件,正向扫描进行REDO。为什么不需要UNDO?因为你重载后备副本的时候就相当于是UNDO了。


7.6,具有检查点的恢复技术

1,前面所说的恢复记录非常好,但是日志文件带来两个问题:1,扫描日志文件耗时;2,有些REDO操作可能还不需要进行的,因为已经写入数据库了。

2,所以就发明了检查点恢复技术。它的核心思路是这样的:在以往的日志文件中加入(检查点,日志记录),再增加一个重新开始文件,通过重新开始文件,可以找到日志文件中的(检查点,日志记录)这样的二元组,然后只需要针对这个二元组中的日志记录进行REDO和UNDO操作即可。

3,按照什么步骤建立(检查点,日志记录)二元组呢?1,日志缓冲写入磁盘日志;2,记录检查点;3,当前数据缓冲写入磁盘;4,在重新开始文件中写入(检查点,日志记录)二元组的地址。

4,四步恢复策略:1,找到检查点;2,通过检查点得到当前全部事务ACTIVE-LIST,将ACTIVE-LIST放入UNDO-LIST,REDO-LIST暂空;3,正向扫描UNDO-LIST,若已提交,则丢入REDO-LIST,若未提交,则不动;4,正扫REDO-LIST,重做,逆扫UNDO-LIST,撤销。

7.7,数据库镜像

针对介质故障的破坏性以及恢复的耗时性,开发了镜像技术,也就是双磁盘技术。DBMS会自动的将主数据库的全部数据或关键数据复制到镜像数据库中去,一旦主库出现介质故障,镜像库可以马上顶替上来。在没有出现故障的时候,还可以用于并发操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容