Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 永不丢失数据技术_Architecture - Fatal编程技术网

Architecture 永不丢失数据技术

Architecture 永不丢失数据技术,architecture,Architecture,我对用于构建一个系统的技术很好奇,在这个系统中,确保没有数据丢失是最重要的。举一个简单的例子,金融机构如何确保当资金在账户之间转账时,一旦从一个账户中取出,毫无疑问就会存入另一个账户。我不是在寻找数据库事务之类的特定技术,而是更大、更体系结构的概念,比如在服务器停机、队列耗尽空间或其他情况下如何保存数据 如果有人能给我指点有关这方面的书籍或文章,我将不胜感激 基本技术是消除任何单点故障。安装过程中可能失败的任何内容都需要备份或多次备份。来自多个交换机、服务器、UPS、硬盘驱动器等。。。数据库不断

我对用于构建一个系统的技术很好奇,在这个系统中,确保没有数据丢失是最重要的。举一个简单的例子,金融机构如何确保当资金在账户之间转账时,一旦从一个账户中取出,毫无疑问就会存入另一个账户。我不是在寻找数据库事务之类的特定技术,而是更大、更体系结构的概念,比如在服务器停机、队列耗尽空间或其他情况下如何保存数据


如果有人能给我指点有关这方面的书籍或文章,我将不胜感激

基本技术是消除任何单点故障。安装过程中可能失败的任何内容都需要备份或多次备份。来自多个交换机、服务器、UPS、硬盘驱动器等。。。数据库不断被复制,数据被备份并存储在现场以外,以防发生火灾或其他可能对建筑造成破坏的灾难

所有这些都可以归结为在两个地方有相同的数据;从下到下,在提交数据之前保存缓存的代码,一直到服务器冗余


<> P>唯一确保你不丢失东西的方法是有多个副本。

你应该阅读关于数据加密的其他主题,如果你在网站上思考,也可以考虑使用HTTPS。p> 您可能希望了解XA或X/Open事务,它们可以将多个系统(包括数据库、队列等)协调到类似ACID DB的事务中

我没有使用过它,但我听说它在延迟方面和计算方面都很昂贵。但话说回来,您的数据完整性值多少钱


以银行为例,每家银行都会为每笔交易保留一份记录,说明交易金额、交易地点、交易地点、交易时间顺序

因此,如果以后出现问题,您可以比较两个事务日志,如果它们不匹配,您可以识别缺少的事务

这也涵盖了一家银行不能信任另一家银行为其保存记录的问题


由于他们交叉检查这几乎是一个分布式事务协议,正如您所提到的,有各种机制(如事务)可确保基于软件的“握手”可靠并成功完成

架构上——是的,拥有两份东西会给你带来冗余,这有助于避免丢失东西。除此之外:

  • 清晰的流程:人们需要准确地知道信息的去向——无论是在阳光明媚的日子里,还是当棕色的东西击中风扇时。拥有数据但无法找到或识别数据与丢失数据一样糟糕。您的流程越清晰(并有良好的文档记录)越好
  • 一致性:自动化显然比随机的人为错误要好
  • 具体回答您的问题-但上述几点应在清晰的架构和设计中得到回应,并明确区分关注点
  • 尽可能减少故障点
  • 关注高风险领域
  • 使用经过验证的技术(我想这就是你真正想要的)
  • 让事情尽可能简单
不久前,我为一个现成的文档管理系统开发了一个解决方案体系结构;没有数据丢失是主要驱动因素。该系统在全国范围内推出,因此在为本地用户提供服务的“区域”缓存和实际的“数据中心”方面都是多站点的。一些关注点:

  • 所有组件(在可能的情况下)都部署到虚拟机上,这些虚拟机会返回到SAN,因此,在物理主机发生故障时,我们可以更快地恢复服务。就数据丢失而言,这意味着如果系统关闭,用户更有可能使用受保护的系统,而不是在本地存储数据
  • 此外,SAN被认为比本地磁盘更安全
  • 上述内容是现有设置的一部分,因此对老年退休金计划来说没有什么新的内容可供学习
  • 故障转移站点,带复制。这不是实时的,数据库上的事务日志增强了这一点

我想这些都不是以软件为中心的,但我确实认为“我们”使用的所有优秀的软件架构/设计原则都有助于指导我的思考。

这个问题可能更适合我认为在这些情况下,事务应该回滚。我认为这些东西属于“两阶段提交”,即跨>=2个系统的事务,不是100%确定的……1)改变物理定律以消除恼人的熵;2) ?????; 3) 利润@格雷格-从某种意义上说,你是对的,但我认为它仍然有值得研究的软件含义:)+1-不错,“丢失”数据还应该包括其他获得它的人。