【问题标题】:Distributed db's or not?分布式数据库与否?
【发布时间】:2010-06-30 14:22:24
【问题描述】:

INFORMIX-SQL 7.32 (SE) Linux Pawnshop 应用程序。

我有一些用户在 100 英里半径范围内拥有多家当铺。每个当铺应用程序都使用 SE 运行。这些所有者需要的唯一功能是:远程登录任何商店以查看交易、运行总计和在工作日结束时合并每日总计的能力。这可以通过拨号调制解调器来完成,因为应用程序不需要显示 BLOB。在一天结束时,每个商店的总数都被卸载到一个平面文件中并传输到所有者的系统中。

我的所有者通过转换为分布式数据库可以获得什么?...能够查明商店客户是否在另一家商店开展过业务,或者另一家商店是否有想要出售的库存商品? (不重要,很少发生)。大多数客户通常会与同一家商店做生意,如果他们没有想要的商品出售,他们会去最近的竞争对手当铺。分发 db 的报价来完成与第一段中描述的相同的功能会有什么好处?.. 当铺所有者绝对拒绝通过互联网连接他们的生产系统!他们不相信它的安全性,即使使用 VPN、Cisco 等,也不相信它的可靠性!在世界的这个地区,ISP 的正常运行时间记录不佳。我知道有几个应用程序因为通信问题而从网络转换为拨号!

【问题讨论】:

  • 我会切换它(我不知道如何),但这似乎是一个服务器故障问题
  • @Justin- 我不同意您认为这是一个面向服务器故障的问题!.. 这是一个“数据库设计”和连接问题。由于当前应用程序是使用 Informix-SQL 编写的,因此我需要特别了解在 Informix 或其他 RDBMS 中可以选择哪些最佳替代方案。

标签: mysql oracle database-design database-connection informix


【解决方案1】:

分布式数据库,更准确地说是 Informix XPS 和 IDS,不仅有一个优势。如果您只关心从不同地方获取数据,您可以通过设计策略来完成它。如果你添加一个“branch_id”或类似的东西,你就完成了。

分布式数据库有很多优势,从可用性到可扩展性。您必须先查看所有这些内容。

对于这种回答很抱歉,但是对于这个话题,真的很难给你一个直接的答案。

【讨论】:

  • store_id 是一个列,在我的当铺应用程序中的每个表中已经存在了 20 多年,我的用户一直在 ETL'ng 日常交易和总计。谁能告诉我分布式数据库设计还有哪些其他优势?
  • Frank,我只能谈谈 Informix,这是我唯一的经验。首先,主要优势在那个领域,你不用再担心设计了。这对你来说都是透明的。只有 DBA 知道,一张表在全国各地的多个 Store 中是零散的。其他优势?分布式查询、负载平衡、可用性、损坏恢复等(您在维基百科中找到的所有常见内容)。所以,问题是:你准备好扩展了吗?您准备好花所需的钱了吗?
【解决方案2】:

CouchDB 是一个基于对等的分布式数据库系统。任意数量的 CouchDB 主机(服务器和离线客户端)都可以拥有同一数据库的独立“副本”,其中应用程序具有完整的数据库交互性(查询、添加、编辑、删除)。当重新联机或按计划恢复时,数据库更改会双向复制。

CouchDB 具有内置的冲突检测和管理,并且复制过程是增量且快速的,仅复制自上次复制以来更改的文档和单个字段。大多数应用程序无需特别规划即可利用分布式更新和复制。

与在相同的旧模型和数据库之上添加分布式功能的繁琐尝试不同,它是精心设计、工程和集成的结果。文档、视图、安全和复制模型、专用查询语言、高效稳健的磁盘布局都经过精心整合,以实现可靠高效的系统。

【讨论】:

    【解决方案3】:

    如果您不打算在数据库之间建立一般 90% 以上的正常运行时间连接,那么分布式数据库就没有任何好处。

    一个主要好处是在一台机器出现故障或不可用时为大型企业提供“故障转移”。如果他们的数据库分布在三四台机器上,那么丢失一台不会影响他们开展业务的能力。

    第二个主要好处是当数据库太大而一台服务器无法处理时。 “互联网规模”数据库(亚马逊、Twitter 等)具有这种级别的流量。沃尔玛会有这样的流量。一些店面操作不会。

    【讨论】:

      【解决方案4】:

      我认为这是一个从分布式数据库操作中获益甚少的环境。

      如果您要进行分布式操作,我可能会考虑使用简单的 ER 拓扑,“总部”商店是主(根)节点,其他商店是叶节点。然后,您将对单个商店数据库的更改复制到 HQ 节点;您可能会也可能不会将数据传播回其他商店。尤其是只有两个商店,您实际上可能只是将所有信息复制到两个商店;这为您提供了数据库的自动异地备份。 (在这种情况下,您可能会将所有节点都配置为根节点 - 至少,直到一个链增长到,比如说,五个或六个节点。)

      这将为您提供一些灾难恢复的弹性。它还可以让总部(特别是)查看每家商店的情况。

      我的印象是,您可能不是在讨论“平均每秒事务数”;单个商店的交易率可能是每分钟几笔交易,“很少”可能少于一个 TPM。因此,网络带宽在任何时候都不太可能成为瓶颈,即使是拨号速度(尽管这可能是临界的)。

      【讨论】:

      • Multi-store (3) 真的不需要了解彼此的客户或交易。在一天结束时,每家商店的新客户、交易和分类账总额都会通过 ETL 发送到所有者系统。每个存储整个系统(OS 和 DB)都封装在一个 108MB 的文件中,这是一个虚拟硬盘映像,备份到拇指驱动器并在场外取走。 TPM?更像TPHour!
      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2012-11-02
      • 2011-05-06
      • 2011-09-04
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多