zoukankan      html  css  js  c++  java
  • 5 数据库恢复技术

    一、事务

    1.事务的定义:

              用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

    2.事物的特性:

              原子性:Atomicity一个事务的操作要么全做,要么全不做——恢复机制

              一致性:Consistency使数据库从一个一致性状态变成另一个一致性状态——原子性、隔离性、持久性

              隔离性:Isolation一个事务的执行不被其他事务干扰——并发控制机制——引申出事务的隔离级别,见java数据库管理

              持久性:Durability一个事务一旦提交,它对数据库的改变应该是永久性的,接下来的其他操作或故障不应该对其执行结果有影响——恢复机制

    3.事务的状态

    • 事务的开始begin trans
    • 事务的提交commits
    • 事务的回滚 rollback
    • 事务的结束 end trans

    二、故障种类

      1.事务内部的故障

      2.系统故障(软故障)

      3.介质故障(硬故障)

      4.计算机病毒

               数据库具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能——数据库的恢复

    三、恢复的实现技术

       1.数据转储

       DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。

        (1)转储状态

             静态转储:在系统中无运行事务时进行的转储操作;

             动态转储:转储期间允许对数据库进行存取或修改

       (2)转储方式

             海量转储:每次转储全部数据

             增量转储:每次只转储上一次转储后更新过的数据

       2.登记日志文件

                            (记录对数据库数据的修改,保护数据库以防故障发生以及恢复数据时使用)

          必须先写日志文件,后写数据库

    日志文件的特点

    • 每一个数据库至少包含两个日志文件组,每个日志文件组包含至少两个日志文件
    • 日志文件组以循环的方式进行写操作
    • 每一个日志文件成员对应一个物理文件。

    如果数据库日志满了,会出现什么情况?

    只能执行查询等数据库读操作,不能执行更改、备份等写操作。原因是任何写操作都要记录日志。

    四、恢复策略

       1、事务故障的恢复

    • 反向扫描日志文件,查找该事务的更新操作;
    • 对事务的更新操作做逆操作

       2、系统故障的恢复

    • 正向扫描日志文件,找出故障发生前已经提交的事务
    • 将已提交事务的标记计入重做队列
    • 同事找出故障发生时尚未完成的事务,将其事务标记记入撤销队列
    • 对撤销队列中的各个事务进行撤销处理undo
    • 对重做队列中的各个事务进行重做处理redo

       3、介质故障的恢复

    • 装入最新的数据库副本
    • 装入相应的日志文件副本,重做已完成的事务 
  • 相关阅读:
    require() 源码解读
    那些JS容易忽略的题
    javascript:void(0);与return false
    location.href
    IE CSS Bugs 列表和解决方法
    npm 常用命令
    移动开发不能不知道的事-meta
    Canvas介绍
    用CSS变形创建圆形导航
    一个传统行业互联网系统的架构演化(Week 4)
  • 原文地址:https://www.cnblogs.com/xiaoxiaohui2015/p/5802796.html
Copyright © 2011-2022 走看看