一、数据库系统故障种类

1、事务故障:是由于程序执行错误而引起事务非预期的、异常终止的故障。
通常有如下两类错误引起事务执行失败:
(1)逻辑错误。如非法输入、找不到数据、溢出、超出资源限制等原因引起的事务执行失败。
(2)系统错误。系统进入一种不良状态(如死锁),导致事务无法继续执行。

2、系统故障:是指硬件故障、软件(如DBMS、OS或应用程序)漏洞的影响,导致丢失了内存中的信息,影响正在执行的事务,但未破坏存储在外存上的信息。

3、介质故障:是指数据库的存储介质发生故障,如磁盘损坏、瞬间强磁场干扰等。这种故障直接破坏了数据库,会影响到所有正在读取这部分数据的事务。

二、数据库备份

数据备份是数据转储是将数据库自制到另一个磁盘或磁带上保存起来的过程

(1)静态转储和动态转储。静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行。
(2)海量转储和增量转储。海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据。
(3)日志文件。在事务处理的过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。
(4)数据库镜像。为了避免磁盘介质出现故障影响数据库的可用性,许多DBMS提供数据库镜像功能用于数据库恢复。

三、数据库恢复

要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据库恢复,常用的是数据转储和日志文件。

1、故障恢复的两个操作
(1)撤销事务(UNDO):将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
撤销事务的过程:反向扫描日志文件(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其它更新操作并执行逆操作直至事务开始标志。
(2)重做事务(REDO):将已提交的事务重新执行。
重做事务的过程:从事务的开始标志起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。

2、故障恢复策略
(1)事务故障的恢复:事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文件只有该事务的开始标识而没有结束标识。对这类故障的恢复通常是通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。
具体做法:
1、反向扫描日志文件,查找该事务的更新操作。
2、对事务的更新操作执行逆操作。
3、继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
注:事务故障的恢复是由系统自动完成的,对用户是透明的。

(2)系统故障的恢复:系统故障会使数据库的数据不一致:
一是未完成的事务对数据库的更新可能已经写入数据库;
二是已提交的事务对数据库的更新可能还在缓冲区没来得及写入数据库。
因此对于系统故障,恢复操作是UNDO+REDO:
1、撤销故障发生时未完成的事务(UNDO)。
2、重做已经提交的事务(REDO)。

(3)介质故障的恢复:介质故障时数据库遭到破坏,需要重装数据库,一般需要DBA的参与,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销(UNDO)和重做(REDO)来恢复。

数据库备份与恢复简介相关推荐

  1. 图数据库Neo4j简介

    图数据库Neo4j简介 转自: 图形数据库Neo4J简介 - loveis715 - 博客园 https://www.cnblogs.com/loveis715/p/5277051.html 最近我在 ...

  2. Oracle数据库备份与恢复的三种方法

    Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/ ...

  3. linux数据库都备份什么,Linux运维学习之数据库备份与恢复

    今天给大家带来的是关于数据库备份与恢复的教程,当我们手贱或者不知道什么原因导致数据库的崩溃,甚至删除数据库时怎么办,总不能跑路吧?所以我们做好日常的备份和相关的灾后重建很有必要. 那么备份都有什么方式 ...

  4. Database:Database数据库的简介、类型及其区别(关系数据库VS非关系型数据库)、案例应用之详细攻略

    Database:Database数据库的简介.类型及其区别(关系数据库VS非关系型数据库).案例应用之详细攻略 目录 Database数据库的简介 1.掌握数据库的方法-学会sql语言进而学会增.删 ...

  5. BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略

    BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介.下载.案例应用之详细攻略 目录 MongoDB的简介 1.MongoDB的主要功能特性 2.对MongoDB进行增删改查( ...

  6. [Qt教程] 第21篇 数据库(一)Qt数据库应用简介

    [Qt教程] 第21篇 数据库(一)Qt数据库应用简介 楼主  发表于 2013-5-13 20:56:39 | 查看: 1403| 回复: 13 Qt数据库应用简介 版权声明 该文章原创于作者yaf ...

  7. Visual SourceSafe 数据库安全性简介

    Visual SourceSafe 数据库安全性简介 作者:佚名    文章来源:网络    点击数: 327    更新时间:2007-6-18 Visual SourceSafe 数据库安全性简介 ...

  8. mysql 5.7 数据库备份_MySQL5.7.20数据库备份与恢复

    MySQL数据库备份与恢复 · ####造成数据丢失的原因#### 程序错误 人为操作错误 运算错误 磁盘故障 灾难(如火灾.地震)和盗窃 · ####物理与逻辑的角度#### 1.物理备份: 冷备份 ...

  9. 深入剖析ORACLE数据库备份与恢复的原理

    一.ORACLE数据库备份与恢复方法 1,用户管理的ORACLE数据库备份与恢复 用户管理的ORACLE数据库备份与恢复是指使用SQL 语句命令结合OS命令备份和恢复DB的方法(也被称为OS 备份与恢 ...

最新文章

  1. 如何选择正确的标签?
  2. python3 错误 Max retries exceeded with url 解决方法
  3. python数据帧_Python数据帧
  4. Openstack迁移DDH最佳实践
  5. php explain type等级,mysql中explain分析sql详解
  6. 第1节 连通性强连通、割点和桥(一)
  7. 地图统计_博客 城市访问量统计并且通过Echarts+百度地图展示
  8. 安卓应用安全指南 5.2.2 权限和保护级别 规则书
  9. ComponentName
  10. 前端-【学习心得】-事件委托方法
  11. 想成为一个Web前端开发工程师,需要掌握的详细知识总结
  12. Linux文章大合集
  13. jQuery直接调用asp.net后台WebMethod方法
  14. 云大计算机初试最高分,【经验谈】初试总分360+,专业排名前五!云大社会工作专......
  15. 本地IIS启动后网页HTTP 错误 404.3 - Not Found解决方案
  16. 西瓜视频怎么做伪原创
  17. 造车失败后投身机器人和AI,我笑戴森太疯癫,戴森笑我看不穿
  18. python| requests 访问 https网站
  19. 千牛如何装修店铺 千牛装修店铺的教程
  20. .9图片设置不拉伸的区域被拉伸的问题

热门文章

  1. Spring Web Flow —— 配置 - 001
  2. 食品礼品盒行业调研报告 - 市场现状分析与发展前景预测
  3. 昆工月饼,Kuster专属
  4. jenkins:常用bat命令(八)
  5. 安卓客户端带密码压缩或者解压zip文件
  6. 关于iOS禁止输入表情符号
  7. 秒杀抢购异步下单:基于Redis的消息队列秒杀抢购异步下单功能
  8. 国内外青少年网络安全情况分析
  9. 报表生成器FastReport .Net用户指南(四):Bands的属性
  10. 【python与高等数学专题 一】Python3在一幅图绘制多个函数图像