提纲
WWcW_PLCJS_COM-PLC-技.术_网
1 关系数据库中故障恢复理论WWW_PLC※JS_COM-PmLC-技.术_网
? 实时数据库中故障恢复实现——可——编——程——控-制-器-技——术——门——户
? 参考书目WWW_PLCJS@_COM%-PLC-技.术_网
1 关系数据库中故障恢复理论WWW_PLC※JS_COM-PmLC-技.术_网
1.1 数据库恢复概述WWW.PLCJS.COM——可编程控制器技术门户
1.2 故障的种类WWcW_PLCJS_COM-PLC-技.术_网
1.3 恢复的实现技术WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
1.4 恢复策略WW.W_PLC※JS_C,OM-PL,C-技.术_网
1.5 具有检查点的恢复技术WW.W_PLC※JS_C,OM-PL,C-技.术_网
1.6 数据库镜像P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
1.1 数据库恢复概述WWW_P※LCJS_CO※M-PLC-技-.术_网
? 故障是不可避免的WW.W_PLC※JS_C,OM-PL,C-技.术_网
– 计算机硬件故障WWW_PLCJS_COM-PLC-技.术_网
– 系统软件和应用软件的错误P.L.C.技.术.网——可编程控制器技术门户
– 操作员的失误WW.W_PLCJS_COM-PLC-技.术_网
– 恶意的破坏WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
? 故障的影响WW.W_PLCJS_COM-PLC-技.术_网
– 运行事务非正常中断WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
– 破坏数据库P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
1.1 数据库恢复概述(续)WWW_PLCJS@_COM%-PLC-技.术_网
? 数据库管理系统对故障的对策WW.W_PLC※JS_C,OM-PL,C-技.术_网
– DBMS提供恢复子系统WW.W_PLCJS_COM-PLC-技.术_网
– 保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态——可——编——程——控-制-器-技——术——门——户
– 保证事务ACIDW1WW_P4LCJS_COM-PLC-技.术_网
? 恢复技术是衡量系统优劣的重要指标WWcW_PLCJS_COM-PLC-技.术_网
1.2 故障的种类WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
1.2.1 事务故障WW.W_PLC※JS_C,OM-PL,C-技.术_网
1.2.2 系统故障WWW_P※LCJS_CO※M-PLC-技-.术_网
1.2.3 介质故障WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
1.2.1 事务故障WWW_P※LCJS_CO※M-PLC-技-.术_网
? 什么是事务故障P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
– 某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了plcjs.技.术_网
? 事务故障的常见原因WWW_PL※CJS_COM-PLC-技.术_网
– 输入数据有误WWW_P※LCJS_CO※M-PLC-技-.术_网
– 运算溢出WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
– 违反了某些完整性限制P.L.C.技.术.网——可编程控制器技术门户
– 某些应用程序出错WWW.PLCJS.COM——可编程控制器技术门户
– 并行事务发生死锁plcjs.技.术_网
– 。。。。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
事务故障的恢复WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
? 发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘WWW_PLC※JS_COM-PmLC-技.术_网
? 事务故障的恢复:撤消事务(UNDO)WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
? 强行回滚(ROLLBACK)该事务plcjs.技.术_网
? 清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样P.L.C.技.术.网——可编程控制器技术门户
1.2.2 系统故障WWW_PLCJS_COM-PLC-技.术_网
? 什么是系统故障WWW_PL※CJS_COM-PLC-技.术_网
– 整个系统的正常运行突然被破坏WWW_PLCJS@_COM%-PLC-技.术_网
– 所有正在运行的事务都非正常终止WWW_PLCJS@_COM%-PLC-技.术_网
– 内存中数据库缓冲区的信息全部丢失WWW_PLCJS@_COM%-PLC-技.术_网
– 外部存储设备上的数据未受影响WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
系统故障的常见原因WWW_PLC※JS_COM-PmLC-技.术_网
? 操作系统或DBMS代码错误WWW.PLCJS.COM——可编程控制器技术门户
? 操作员操作失误WWW_PLC※JS_COM-PmLC-技.术_网
? 特定类型的硬件错误(如CPU故障)WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
? 突然停电WWW.PLCJS.COM——可编程控制器技术门户
系统故障的恢复——可——编——程——控-制-器-技——术——门——户
? 清除尚未完成的事务对数据库的所有修改W1WW_P4LCJS_COM-PLC-技.术_网
– 系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务WWW_PLCJS@_COM%-PLC-技.术_网
? 将缓冲区中已完成事务提交的结果写入数据库WWW_P※LCJS_COM-PLC-)技.术_网
– 系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务WWcW_PLCJS_COM-PLC-技.术_网
1.2.3 介质故障WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
? 硬件故障使存储在外存中的数据部分丢失或全部丢失WWW.PLCJS.COM——可编程控制器技术门户
? 介质故障比前两类故障的可能性小得多,但破坏性大得多P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
介质故障的常见原因WWW_PLCJS_COM-PLC-技.术_网
? 硬件故障WWW_PL※CJS_COM-PLC-技.术_网
– 磁盘损坏WWcW_PLCJS_COM-PLC-技.术_网
– 磁头碰撞WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
– 操作系统的某种潜在错误WWW_PL※CJS_COM-PLC-技.术_网
– 瞬时强磁场干扰W1WW_P4LCJS_COM-PLC-技.术_网
介质故障的恢复WWW_PLCJS_COM-PLC-技.术_网
? 装入数据库发生介质故障前某个时刻的数据副本WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
? 重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库WWW_PLC※JS_COM-PmLC-技.术_网
1.3 恢复的实现技术WWW_P※LCJS_COM-PLC-)技.术_网
1.3.1 恢复操作的基本原理WWW_PL※CJS_COM-PLC-技.术_网
1.3.2 恢复操作的关键问题plcjs.技.术_网
1.3.3 数据转储WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
1.3.4 日志文件P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
1.3.1 恢复操作的基本原理P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
? 恢复操作的基本原理:冗余WWW_P※LCJS_COM-PLC-)技.术_网
– 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据WW.W_PLCJS_COM-PLC-技.术_网
? 恢复的实现技术:复杂WWW_PLCJS@_COM%-PLC-技.术_网
– 一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上WW.W_PLC※JS_C,OM-PL,C-技.术_网
1.3.2 恢复的实现技术WWW_PLC※JS_COM-PmLC-技.术_网
恢复机制涉及的关键问题WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
1. 如何建立冗余数据WWW_PLC※JS_COM-PmLC-技.术_网
? 数据转储(backup)WWW_P※LCJS_COM-PLC-)技.术_网
? 登录日志文件(logging)WWcW_PLCJS_COM-PLC-技.术_网
2. 如何利用这些冗余数据实施数据库恢复WWW_P※LCJS_CO※M-PLC-技-.术_网
1.3.3 数据转储WWW_PLCJS_COM-PLC-技.术_网
A、什么是转储WWW.PLCJS.COM——可编程控制器技术门户
B、转储的用途WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
C、转储方法plcjs.技.术_网
A、什么是转储WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
? 转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
? 这些备用的数据文本称为后备副本或后援副本。plcjs.技.术_网
B、转储的用途WWW_PL※CJS_COM-PLC-技.术_网
C、转储方法WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
? 静态转储与动态转储plcjs.技.术_网
? 海量转储与增量转储WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
? 转储方法小结P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
静态转储W1WW_P4LCJS_COM-PLC-技.术_网
? 在系统中无运行事务时进行转储WWW_PL※CJS_COM-PLC-技.术_网
? 转储开始时数据库处于一致性状态P.L.C.技.术.网——可编程控制器技术门户
? 转储期间不允许对数据库的任何存取、修改活动P.L.C.技.术.网——可编程控制器技术门户
? 优点:实现简单WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
? 缺点:降低了数据库的可用性P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
– 转储必须等用户事务结束——可——编——程——控-制-器-技——术——门——户
– 新的事务必须等转储结束WW.W_PLC※JS_C,OM-PL,C-技.术_网
利用静态转储副本进行恢复plcjs.技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
动态转储WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
? 转储操作与用户事务并发进行WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
? 转储期间允许对数据库进行存取或修改WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
? 优点WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
– 不用等待正在运行的用户事务结束WWW_PL※CJS_COM-PLC-技.术_网
– 不会影响新事务的运行W1WW_P4LCJS_COM-PLC-技.术_网
? 动态转储的缺点WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
– 不能保证副本中的数据正确有效WW.W_PLCJS_COM-PLC-技.术_网
动态转储W1WW_P4LCJS_COM-PLC-技.术_网
? 利用动态转储得到的副本进行故障恢复W1WW_P4LCJS_COM-PLC-技.术_网
– 需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件WWW_P※LCJS_CO※M-PLC-技-.术_网
– 后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
利用动态转储副本进行恢复WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PLCJS_COM-PLC-技.术_网
利用动态转储副本进行恢复WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
海量转储与增量转储WWW_PL※CJS_COM-PLC-技.术_网
? 海量转储: 每次转储全部数据库plcjs.技.术_网
? 增量转储: 只转储上次转储后更新过的数据
WWW_PLCJS_COM-PLC-技.术_网
? 海量转储与增量转储比较
WWW_P※LCJS_CO※M-PLC-技-.术_网
– 从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便——可——编——程——控-制-器-技——术——门——户
– 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
转储方法小结WWW_P※LCJS_CO※M-PLC-技-.术_网
? 转储方法分类plcjs.技.术_网
转储策略P.L.C.技.术.网——可编程控制器技术门户
? 应定期进行数据转储,制作后备副本。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
? 但转储又是十分耗费时间和资源的,不能频繁进行。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
? DBA应该根据数据库使用情况确定适当的转储周期和转储方法。WWcW_PLCJS_COM-PLC-技.术_网
例:WWcW_PLCJS_COM-PLC-技.术_网
– 每天晚上进行动态增量转储WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
– 每周进行一次动态海量转储plcjs.技.术_网
– 每月进行一次静态海量转储WWW_PLC※JS_COM-PmLC-技.术_网
1.3.4 日志文件WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
一、日志文件的内容WW.W_PLC※JS_C,OM-PL,C-技.术_网
二、日志文件的用途WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
三、登记日志文件的原则WWW_PLC※JS_COM-PmLC-技.术_网
一、日志文件的内容WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
A. 什么是日志文件WWW.PLCJS.COM——可编程控制器技术门户
日志文件(log)是用来记录事务对数据库的WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
更新操作的文件WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
B. 日志文件的格式WWW_P※LCJS_CO※M-PLC-技-.术_网
以记录为单位的日志文件——可——编——程——控-制-器-技——术——门——户
以数据块为单位的日志文件WWW_P※LCJS_CO※M-PLC-技-.术_网
日志文件的内容(续)WW.W_PLCJS_COM-PLC-技.术_网
C. 日志文件内容WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
– 各个事务的开始标记(BEGIN TRANSACTION)——可——编——程——控-制-器-技——术——门——户
– 各个事务的结束标记(COMMIT或ROLLBACK)WW.W_PLCJS_COM-PLC-技.术_网
– 各个事务的所有更新操作WWW.PLCJS.COM——可编程控制器技术门户
– 与事务有关的内部更新操作WWW_PL※CJS_COM-PLC-技.术_网
日志文件中的一个日志记录 (log record)WWW_PLCJS_COM-PLC-技.术_网
D. 基于记录的日志文件P.L.C.技.术.网——可编程控制器技术门户
每条日志记录的内容——可——编——程——控-制-器-技——术——门——户
– 事务标识WWW.PLCJS.COM——可编程控制器技术门户
– 操作类型(插入、删除或修改)WWW_PL※CJS_COM-PLC-技.术_网
– 操作对象(记录ID、Block NO.)WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
– 更新前数据的旧值(对插入操作而言,此项为空值)WWW_PLCJS_COM-PLC-技.术_网