1、数据库恢复的原理

数据库恢复的原理主要是在数据库发生故障之后,建立冗余数据,在故障发生之后利用冗余数据来完成数据库恢复。数据转储和建立日志文件是建立冗余数据常用的技术手段。一般情况下两种技术手段会同时使用。

2、故障恢复的两个操作

故障恢复有撤销事务(UNDO)、重做(REDO)两个操作。

2.1 撤销操作

撤销事务就是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。

撤销事务的过程:反向扫描未完成的事务日志,查找事务的更新操作;对该事务的更新操作执行反向操作,然后利用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删掉,删除的记录重新插入数据库中;

继续反向扫描日志文件,重复以上操作,直到事务开始标志。

2.2 重做事务 

重做事务是将已经提交的事务重新执行。

重做事务的过程:从事务的开始标识开始,正向扫描日志文件,重新执行日志文件登记的对事务对数据库的所有操作,直到事务结束标识。

3、故障恢复策略介绍 

针对不同的数据故障应该采取不同的恢复策略。

3.1 事务故障恢复

事务故障是在事务在运行至正常终止点(提交、回滚)之前终止。日志文件只有该事务的开始标识而没有结束标识。一般针对这类故障的恢复通过撤销产生的故障事务,使数据库恢复到该事务执行前的正确状态来完成。

事务恢复步骤如下:

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

  • 对事务的更新操作执行反向操作

  • 继续反向扫描日志文件,做同样处理直到事务的开始标志

说明:事务的故障恢复由系统自动完成,对用户是透明的。

3.2 系统故障的恢复 

系统故障会造成数据库的数据不一致。主要原因:未完成的事务对书库的更新操作可能已经写入了数据库;已提交的事务对数据库的更新可能还在缓冲区没来得及写入数据库。系统故障数据恢复要撤销故障发生时未完成的事务,重做已提交的事务。

3.3 介质故障的恢复 

介质故障由数据库遭到破坏,需要重装数据库,需要装载故障前最近依次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销和重做操作来进行恢复。

说明:介质故障要有数据库管理员来参与,装入数据库的副本和日志文件的副本,再由数据库系统执行撤销和重做操作。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

数据库恢复相关知识笔记相关推荐

  1. 数据库系统故障相关知识笔记

    数据库系统中可能发生的故障主要包括事务故障.系统故障.介质故障.计算机病毒等.下面给大家简单整理一下相关的故障知识笔记. 1.事务故障 事务故障是因为程序执行错误而引起的非预期.异常终止的故障.主要有 ...

  2. SQLServer数据库收缩相关知识笔记

    1.为什么要进行数据库收缩? SQL Server 数据库采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了300MB,而实际上只占用了20MB空间,这样就会造成磁盘存 ...

  3. SQLServer数据库文件相关知识笔记

    1.数据库文件概念 数据库文件是SQLServer数据库的物理体现,和计算机的普通文件一样存储在计算机的磁盘空间当中.作为数据库记录和日志等其他信息的存储载体. 2.数据库文件分类 数据库文件主要包括 ...

  4. SQLServer数据库实例相关知识笔记

    1.概念介绍 SQL实例实际上就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库. 在一台计算机上,可以安装多个SQL SERVER,每个SQL S ...

  5. 数据库安全性相关知识笔记​

    1.数据库的恶意访问形式 未经授权读取数据.未经授权修改数据.未经授权破坏数据. 2.数据库安全性概念 数据库安全性(Data Base Security)主要是指尽可能保护数据库不受恶意访问. 3. ...

  6. 数据库及相关知识详解大全

    友情提示以下内容是对数据库以及相关知识所做的一个阐述,内容较多需多花费些各位看官宝贵时间,不过全是干货以及一些小的实例,我相信各位点进来的看官都会有所收获. 数据库介绍 什么是数据库? 数据库(Dat ...

  7. 事务管理基础:数据库的并发控制相关知识笔记

    1.并发操作的概念介绍 并发操作主要是指在多用户共享的系统当中,可能存在很多用户同时对同一个数据进行操作.并发操作会造成丢失更新.不可重复读.读脏数据.主要原因是事务的并发操作破坏了事务的隔离性. 2 ...

  8. 数据库系备份相关知识笔记

    1.数据库备份的知识介绍 在互联网时代,最珍贵的财产不是计算机应用软件,更不是计算机硬件,而是企业在业务长期发展过程中积累下来的业务数据.建立网络最根本的用途是更加方便的传递.使用数据,人为原因.硬盘 ...

  9. 事务管理:事务的状态相关知识笔记

    1.事务的几个概念 中止事务:事务在执行过程中发生故障,不能执行完成的事务.可以进行事务回滚,保持数据库的一致性. 事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚. 已提交事务:成功执行完成的 ...

最新文章

  1. JSON.stringify报cyclic object value错误
  2. iView:一套基于Vue的高质量UI组件库
  3. linux后台运行cat命令,Linux程序前台后台切换
  4. 孙正义看未来30年:投资趋势,永远不会错
  5. postman 400 bad request 原因_盐城400电话
  6. WordPress设置页面的加载机制
  7. linux的日记文件放哪,linux的日记文件在哪_网站服务器运转保护,linux
  8. LeetCode-14.最长公共前缀(字符串的erase()函数)
  9. 1、Spring入门
  10. 华硕升级bios的问题
  11. JavaScript入门培训材料(Copy至此以作备份)
  12. Rust+官方APP使用教程
  13. 鼠标没有唤醒计算机功能,怎么设置碰到鼠标电脑不会唤醒亮起来
  14. 8090后一年有多少存款才算正常?存款五个等级,你在第几个等级?
  15. 关于负数的除法和余数的结果
  16. 【iMessage苹果相册推信息推】 Apple DeviceToken生成的装备上的多个利用程序。 public void subscribe(int clientId, Looper looper
  17. apex英雄机器人传说皮肤_皮肤发黄是什么原因
  18. GIS的云计算解决方案
  19. 【POJ3208】Apocalypse Someday
  20. signature=988b478f2af5e3a20272ed9c171b1a97,Problems of Conquering Everest

热门文章

  1. OSPF动态路由协议入门简介
  2. C++中的类加多线程代码修炼之二
  3. 计算机视觉和图形学中的摄像机内参数矩阵详解
  4. 【ValueError: Target is multiclass but average=‘binary‘. Please choose another average setting, one 】
  5. 【图像处理】——正装照换底色Python
  6. mysql 四大基础操作_mysql数据库的基本操作
  7. 安卓psp模拟器联机教程_刺激战场国际服下载方法教程!安卓ios模拟器都有
  8. pytorch 正向与反向传播的过程 获取模型的梯度(gradient),并绘制梯度的直方图
  9. python搜索文件内容_python实现搜索文本文件内容
  10. IOS 调用系统照相机和相册