我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三类:事务故障、系统故障和介质故障。应该根据故障类型的不同,采取不同的恢复策略。
  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)装入的日志文件副本,根据日志文件中的内容重做已完成的事务。首先扫描日志文件,找出故障发生时己提交的事务,将其记入重做队列。然后正向扫描日志文件,对重做队列中的各个事务进行重做处理,方法是正向扫描日志文件,对每个重做事务重新执行登记的操作,即将日志记录中“更新后的值”写入数据库。
这样可以将数据库恢复至故障前某一时刻的一致状态了。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

捍卫数据库:故障恢复策略的最佳选择
2024-03-10

当数据库崩溃时:故障恢复策略的比较

数据库崩溃时故障恢复策略比较
当数据库崩溃时:故障恢复策略的比较
2024-03-10

Linux环境下DB2数据库的备份恢复策略

在Linux环境下,DB2数据库提供了多种备份恢复策略,以确保数据的安全性和完整性。以下是一些常见的备份恢复策略:备份策略离线全备份:这是最基本的备份类型,适用于数据变化不频繁的情况。通过停止数据库服务并创建数据库的完整副本,确保所有数据
Linux环境下DB2数据库的备份恢复策略
2024-09-22

MySQL ORM框架的数据库备份与恢复策略

MySQL ORM框架(如Django ORM、SQLAlchemy等)通常不直接提供数据库备份与恢复功能,但你可以通过执行原生SQL语句或使用ORM框架提供的特定功能来实现这些操作。以下是一些常见的数据库备份与恢复策略:使用mysqldu
MySQL ORM框架的数据库备份与恢复策略
2024-10-05

MyBatis视图与数据库备份恢复策略中的备份策略选择

MyBatis视图(View)是基于SQL查询结果的虚拟表,它们不存储数据,而是在查询时动态生成。在数据库备份恢复策略中,备份策略的选择对于确保数据的安全性和可恢复性至关重要。以下是一些常见的备份策略选择,以及它们如何应用于MyBatis视
MyBatis视图与数据库备份恢复策略中的备份策略选择
2024-10-15

Db2数据库故障恢复的方法是什么

DB2数据库故障恢复的方法可以分为以下几种:利用数据库备份恢复:如果有定期备份数据库的策略,可以利用备份文件来恢复数据库。可以使用DB2的RESTORE命令来恢复数据库。利用事务日志进行恢复:如果备份文件不可用,还可以利用事务日志文件来进行
Db2数据库故障恢复的方法是什么
2024-03-08

MyBatis视图与数据库备份恢复策略的匹配

MyBatis是一个持久层框架,它允许你使用原生SQL进行数据库操作,包括查询、插入、更新和删除等。而数据库备份恢复策略是确保数据安全性和可用性的重要措施,它们帮助组织在意外故障、丢失或损坏的情况下恢复数据,并确保业务连续性。MyBatis
MyBatis视图与数据库备份恢复策略的匹配
2024-10-15

NoSQL中的数据备份和恢复策略是什么

NoSQL数据库通常采用不同于传统关系型数据库的备份和恢复策略,主要是由于NoSQL数据库的分布式和非结构化特性。以下是一些常见的NoSQL数据库备份和恢复策略:分布式备份:NoSQL数据库通常是分布式的,因此备份数据也需要考虑到分布式环境
NoSQL中的数据备份和恢复策略是什么
2024-05-07

如何实现Oracle数据库的备份和恢复策略

要实现Oracle数据库的备份和恢复策略,可以遵循以下步骤:备份策略:定期进行完整数据库备份:使用Oracle提供的工具如RMAN(Recovery Manager)或第三方备份软件进行完整数据库备份,保留备份文件以便在需要时进行恢复操作
如何实现Oracle数据库的备份和恢复策略
2024-04-09

编程热搜

目录