热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

错误恢复

高可靠性的系统往往伴随着系统冗余,必然带来了造价提高和系统复杂性提高,但在航空设备、航空管制或者战场指挥这样要求高的但数据相对比较简单的系统࿰

高可靠性的系统往往伴随着系统冗余,必然带来了造价提高和系统复杂性提高,但在航
空设备、航空管制或者战场指挥这样要求高的但数据相对比较简单的系统,使用恰当的系统
冗余是合适的,但对于大量的长时间数据处理这样的问题,就需要作一些限制。
1,表决
对于复杂的数据处理计算,例如快速傅里叶变换或者卷积、相关函数的计算、航路计算、
及威胁计算以及应对策略计算等等,如果处理上出现了问题(错误),往往会带来灾难性的
后果,在这种情况下,可以使用表决方案。它的特点是运行在冗余处理器上的每个过程都具
有相同的输入,表决器采取某种策略取出数据,常用的是多数法,或者首选法。
极端情况是冗余构件是由不同小组开发,并且是在不同的平台上运行,当然这样开发和
维护是很昂贵的,仅用在要求非常高的环境中,比如作战指挥和分析系统、飞行器的控制等。
2,主动冗余(热重启)
所有的构件都以并行方式对事件做出响应,但只有第一个构件的响应被使用,而其他的
响应被丢弃。比如在数据库系统中,这种情况使切换时间只有几毫秒,但资源消耗却成倍增
加。
3,被动冗余(暖重启/双冗余/三冗余)
由一个主要构件对事件做出响应,并通知其它备用构件进行状态更新,一旦错误发生,
将自动切换到备用构件上,在此之前,系统必须保证备用状态是新的。切换的时机可以由备
用构件决定,也可以由其它构件决定。该解决方案依赖于可靠的接管,有时候周期性切换可
以提高可靠性。
例如,作为一个典型的例子,在准备产品化应用程序的时候,如何知道数据库是不是能
够经受众多用户对应用程序反复的使用呢?如果数据库服务器关机,会出现什么情况呢?如
果数据库服务器需要快速重启,会出现什么情况呢?
首先,在停止和重启服务器的情况下,我们可以清除连接池并重新建立它。但如何才能
保证结果和服务器关闭之前完全相同呢?这就要用到容错恢复技术了。
请看下面的场景:
使用三台数据库服务器,“主服务器”、“镜像服务器”、“观察者服务器”,使用数
据库镜像的时候,客户只和主服务器联系,镜像服务器处于数据恢复状态(不能进行任何访
问),当向主服务器提交一个事务的时候,也会把这个事物发给镜像服务器。
观察者服务器只是观看主服务器和镜像服务器是不是正在正常工作。
在主服务器关机的时候,观察者自动把镜像服务器切换为主服务器,见下面两张图
注意,当发现主服务器有问题的时候,用户方需要自动清除连接池,并转而使用备用服
务器。
4,备件
备件是在计算机系统中配置了用于更换不同故障的构件。在出现故障的时候,必须转入
适当的软件配置,然后重启计算机。这个方法必须记录持久设备的状态变化,以使接入的设
备能以适当的状态工作。有一些重新引入模块的修复解决方案,包括 shadow 操作、状态再
同步以及回滚。
5,shadow 操作
以前出现故障的构件,可以短时间内以“shadow 模式”运行,以确保在恢复该构件前,
模仿工作构件的行为。
6,状态再同步
不论是主动还是被动的冗余解决方案,都要求所恢复的构件在重新提供服务前更新其状
态更新的方法取决于可承受的停机时间、更新规模以及更新所要求的消息数量。如果可能的
话,最好用一条消息包含它的状态。
7,检查点/回滚
检查点就是记录已创建的状态,一般可以定期进行,也可以对某种消息进行响应。如果
故障是以不同寻常的方式发生的,可以用上一个检查点拍了快照以后所发生的事务日志来恢
复系统。


推荐阅读
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 本文介绍了如何在 DB2 环境中创建和删除数据库编目。创建编目是连接新数据库的必要步骤,涉及获取数据库连接信息、使用命令行工具进行配置,并验证连接的有效性。删除编目则用于移除不再需要的数据库连接。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
author-avatar
坏坏纯1990_440
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有