iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库的故障及其恢复策略是怎样的
  • 503
分享到

数据库的故障及其恢复策略是怎样的

2024-04-02 19:04:59 503人浏览 安东尼
摘要

本篇文章为大家展示了数据库的故障及其恢复策略是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三

本篇文章为大家展示了数据库的故障及其恢复策略是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三类:事务故障、系统故障和介质故障。应该根据故障类型的不同,采取不同的恢复策略。
  1,事务故障及其恢复:
  事务故障表示由非预期的、不正常的程序结束所造成的故障。
  造成程序非正常结束的原因包括输人数据错误、运算溢出、违反存储保护、并行事务发生死等。
  发生事务故障时,被迫中断的事务可能已对数据库进行丁修改,为了消除该事务对数据库的影响,要利用日志文件中所记载的信息,强行回滚(RoLLBAcK)该事务,将数据库恢复到修改前的初始状态。
  为此,要检查日志文件中由这些事务所引起的发生变化的记录,取消这些没有完成的事务所做的一切改变。
  这类恢复操作称为事务撤销(uNDo),具体做法如下。
  (1)反向扫描日志文件,查找该事务的更新操作。
  (2)对该事务的更新操作执行反操作,即对已经插入的新记录进行删除操作,对己删除的记录进行插入操作,对修改的数据恢复旧值,用旧值新值。这样由后向前逐个扫描该事务已做的所有更新操作,并做同样处理,直到扫描到此事务的开始标记,事务故障恢复完毕为止。
  因此,一个事务是一个工作单位,也是一个恢复单位。一个事务越短,越便于对它进行UNDO操作。如果一个应用程序运行时间较长,则应该把该应用程序分成多个事务,用明确的coMMIT语句来结束各个事务。
  2,系统故障及其恢复系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。引起系统故障的原因可能有硬件错误(如CPu故障、操作系统)或DBMS代码错误、突然断电等。
  这时,内存中数据库缓冲区的内容全部丢失,虽然存储在外部存储设备上的数据库并未破坏,但其内容不可靠了。系统故障发生后,对数据库的影响有以下两种情况。
  一种情况是一些未完成事务对数据库的更新已写入数据库,这样在系统重新启动后,要强行撤销(uNDo)所有未完成的事务,清除这些事务对数据库所做的修改。这些末完成事务在日志文件中只有BEGIN TRANsLATl0N标记,而无COMMIT标记。
  另一种情况是有些已提交的事务对数据库的更新结果还保留在缓冲区中,尚未写到磁盘上的物理数据库中,这也使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。这类恢复操作称为事务的重做(REDo)。这种巳提交事务在日志文件中既有BGIN TRANSCATioN标记,也有COMMIT标记。
  因此,系统故障的恢复要完成两方面的工作,既要撤销所有末完成的事务,还要重做所有已提交的事务,这样才能将数据库真正恢复到一致的状态。具体做法如下。
  (1)正向扫描日志文件,查找尚未提交的事务,将其事务标识记人撤销队列。同时查找已经提交的事务,将其事务标识记入重做队列。
  (2)对撤销队列中的各个事务进行撤销处理。方法同事务故障中所介绍的撤销方法。
  (3)对重做队列中的各个事务进行重做处理。进行重做处理的方法是正向扫描日志文件,按照日志文件中所登记的操作内容,重新执行操作,使数据库恢复到最近某个可用状态。
  系统发生故障后,由于无法确定哪些末完成的事务已更新过数据库,哪些事务的提交结果尚未写入数据库,因此系统重新启动后,要撤销所有的末完成的事务,重做所有的已经提交的事务。
  但是,在故障发生前已经运行完毕的事务有些是正常结束的,有些是异常结束的。所以无须把它们全部撤销或重做。
  通常采用设立检查点(checkPoint)的方法来判断事务是否正常结束。每隔一段时间,比如说5分钟,系统产生一个检查点,做下面一些事情:a,把仍保留在日志缓冲区中的内容写到日志文件中;b,在日志文件中写一个“检查点记录”;c,把数据库缓冲区中的内容写到数据库中,即把更新的内容写到物理数据库中;d,把日志文件中检查点记录的地址写到“重新启动文件”中。
  每个检查点记录包含的信息有在检查点时间的所有活动事务一览表、每个事务最近日志记录的地址。
  在重新启动时,恢复管理程序先从“重新启动文件”中获得检查点记录的地址,从日志文件中找到该检查点记录的内容,通过日志往回找,能决定哪些事务需要撤销,恢复到初始的状态,哪些事务需要重做。为此利用检查点信息能做到及时、有效、正确地完成恢复工作。
  3,介质故障及其恢复介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分或全部丢失。
  这类故障比事务故障和系统故障发生的可能性要小,但这是最严重的一种故障,破坏性很大,磁盘上的物理数据和日志文件可能被破坏,这需要装入发生介质故障前的后备数据库副本,然后利用日志文件重做该副本后所运行的所有事务。
  具体方法如下。
  (1)装入的数据库副本,使数据库恢复到最近一次转储时的可用状态。
  (2)装入的日志文件副本,根据日志文件中的内容重做已完成的事务。首先扫描日志文件,找出故障发生时己提交的事务,将其记入重做队列。然后正向扫描日志文件,对重做队列中的各个事务进行重做处理,方法是正向扫描日志文件,对每个重做事务重新执行登记的操作,即将日志记录中“更新后的值”写入数据库。
这样可以将数据库恢复至故障前某一时刻的一致状态了。

上述内容就是数据库的故障及其恢复策略是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 数据库的故障及其恢复策略是怎样的

本文链接: https://www.lsjlt.com/news/68858.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库的故障及其恢复策略是怎样的
    本篇文章为大家展示了数据库的故障及其恢复策略是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三...
    99+
    2022-10-19
  • 紧急数据库恢复带来的数据库备份策略是怎样的
    紧急数据库恢复带来的数据库备份策略是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。某日,接到一个CASE,说数据库两台服...
    99+
    2022-10-19
  • SqlServer数据库数据恢复报告是怎样的
    这篇文章给大家介绍SqlServer数据库数据恢复报告是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1、数据库故障概述SQL server数据库的...
    99+
    2022-10-19
  • 数据库连接配置的策略和实践是怎样的
    今天就跟大家聊聊有关数据库连接配置的策略和实践是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一 前言应用执行SQL请求完成的过程中,数据库连...
    99+
    2022-10-19
  • MySql5.0怎样重装以及恢复之前的数据库
    本篇文章给大家分享的是有关MySql5.0怎样重装以及恢复之前的数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、前提不说了,MySql...
    99+
    2022-10-19
  • 浅析数据库事务中的故障恢复
    简介保证数据的一致性是数据库的一个最最基本的功能,那数据库在机器down机或者出现其他意外的情况下是如何去保证数据库的数据的一致性的呢?数据库本身主要依靠undolog和redolog两种日志文件去保持数据...
    99+
    2022-10-18
  • 数据库逻辑备份与恢复是怎样的
    本篇文章为大家展示了数据库逻辑备份与恢复是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)问题:初次接触数据库备份与恢复,目前是应用在这样一个场景:我们平...
    99+
    2022-10-19
  • Oracle数据库UNDO损坏后的恢复是怎样的
    这期内容当中小编将会给大家带来有关Oracle数据库UNDO损坏后的恢复是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。    UND...
    99+
    2022-10-19
  • MySQL数据库备份与恢复策略的项目经验解析
    MySQL数据库备份与恢复策略的项目经验解析摘要:MySQL数据库作为一种开源而且稳定可靠的关系型数据库管理系统,被广泛应用于各种企业项目中。数据库备份与恢复是保障数据安全和可用性的重要工作,本文将分享一些在项目中积累的MySQL数据库备份...
    99+
    2023-11-02
    MySQL 数据库备份 恢复策略
  • DM7数据库及其表的备份还原是怎样的
    DM7数据库及其表的备份还原是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 DM7 联机...
    99+
    2022-10-19
  • oracle数据库备份和恢复的过程是怎样的
    本篇文章为大家展示了oracle数据库备份和恢复的过程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据库备份和Oracle数据库恢复是使用Or...
    99+
    2022-10-19
  • PHP实现数据库集群故障恢复的方法
    随着互联网应用的快速发展,对于高并发、高可用的要求也越来越高,而数据库的故障恢复是保证应用高可用的重要措施之一。本文将介绍PHP实现数据库集群故障恢复的方法。一、数据库集群数据库集群是指多个数据库服务器通过网络互联,组成一个大型的数据库系统...
    99+
    2023-05-19
    PHP 数据库集群 故障恢复
  • PHP实现数据库分表故障恢复的方法
    随着电子商务和互联网技术的快速发展,互联网应用的性能和可靠性成为了最重要的指标之一。而对于数据库来说,性能和可靠性也是至关重要的。其中一个重要的问题就是数据量过大导致单表数据量过大,引发性能问题。为了解决这个问题,需要将单表分散到多个物理表...
    99+
    2023-05-17
    PHP 故障恢复 数据库分表
  • Oracle数据库不同损坏级别的恢复是怎样的
    这期内容当中小编将会给大家带来有关Oracle数据库不同损坏级别的恢复是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在 DBA 的日常工作中不可避免存在着数据...
    99+
    2022-10-19
  • Navicat怎样恢复SQL server的数据库备份
    这篇文章主要介绍Navicat怎样恢复SQL server的数据库备份,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!打开Navicat for MySQL,在左侧激活数据连接,激活数...
    99+
    2022-10-18
  • PHP实现数据库主从复制故障恢复的方法
    随着互联网的迅速发展,大量的数据需要存储和处理,因此数据库成为现代应用开发中不可或缺的一部分。而在现实应用中,由于网络环境、硬件故障等多种因素的影响,数据库主从复制的故障恢复常常是一项必不可少的任务。在本文中,我们将介绍如何使用PHP实现数...
    99+
    2023-05-16
    PHP 故障恢复 数据库主从复制
  • MySQL数据库备份与灾备恢复策略的项目经验总结
    MySQL数据库备份与灾备恢复策略的项目经验总结引言:在现代企业中,数据库是不可或缺的关键资产。它存储和管理着大量的业务数据。而数据的安全性和可靠性是每个企业都十分关注的问题。为了保护这些重要数据,备份与灾备恢复策略成为数据库管理中非常重要...
    99+
    2023-11-02
    灾备恢复 MySQL备份 项目经验
  • mysql数据库误删除后的数据恢复操作过程是怎样的
    这篇文章给大家介绍mysql数据库误删除后的数据恢复操作过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在日常运维工作中,对于mysql数据库的权限的规避,SQL审核优化、数...
    99+
    2022-10-18
  • raid5常见故障数据恢复的方法是什么
    今天小编给大家分享一下raid5常见故障数据恢复的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。服务器raid阵列...
    99+
    2023-06-03
  • NoSQL数据库概览及其与SQL语法的比较是怎样的
    NoSQL数据库概览及其与SQL语法的比较是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HBase是一个高可靠性、高性...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作