暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

了解数据库的高可用性

原创 eternity 2022-07-25
843

确保数据库的高可用性在当今已不仅仅是一件简单的事。

用户几乎不能容忍停机,无论是计划内停机还是计划外停机。停机的后果可能很严重,可能包括客户流失、声誉受损或因未达到服务级别协议(SLA)而受到处罚。因此,使您的数据库环境高度可用是您需要正确处理的首要任务。好消息是,您可以使用开源数据库构建一个很棒的高可用性(HA)解决方案。我们很快就会谈到这一点,但让我们从一些基本知识开始。

什么是高可用性?您如何获得它?

高可用性是指系统的连续运行,以便向最终用户提供的服务基本上是不间断的。基本的高可用性数据库系统提供了从主数据库节点到集群内冗余节点的故障切换(最好是自动的)。

HA有时与“容错”混淆虽然这两者是相关的,但关键区别在于,HA系统提供了所有系统组件的快速恢复,以最大限度地减少停机时间。可能会出现一些中断,但中断程度很小。容错旨在实现零停机和数据丢失。因此,容错的实现成本要高得多,因为它需要完全反映主系统的专用基础设施。它还需要大量的资源来维护。

实现数据库HA解决方案取决于将三个关键原则付诸实践:

  • 单点故障(SPOF)––消除数据库环境中的任何单点故障,包括数据库系统依赖的物理或虚拟硬件以及可能导致其故障的硬件。

  • 冗余––确保数据库环境中所有组件的充分冗余,并在发生故障时可靠地过渡到这些组件。

  • 故障检测––监控整个数据库环境的故障。

如何衡量高可用性

HA不能保证100%的正常运行时间,但它可以让你接近它。其中,高可用性的金标准是99.999%,即可用性的“五个9”,但所需的HA级别实际上取决于您能够承受多少停机时间。例如,流媒体服务运行的是任务关键型系统,在这些系统中,过多的停机时间可能会导致业务的重大财务和声誉损失。但许多组织可以容忍几分钟的停机时间,而不会对最终用户产生负面影响。

下表显示了每种可用性级别的停机时间,从2到5个9。
image.png

如何使数据库高度可用

并非所有公司都是相同的,他们对HA的要求也不相同。在规划数据库HA体系结构时,公司的规模是评估需求的好地方。例如,如果您是一家小型企业,在本地数据中心之外购买灾难恢复站点可能是不必要的,并且可能会导致您花费超过数据丢失价值的资金。无论规模大小,所有公司都应该考虑如何在可用性目标和成本之间取得平衡。

  • 创业公司和小企业。大多数初创公司和小型企业可以在本地节点上的单个数据中心内实现有效的HA基础设施。这种基本架构使数据库在主节点发生故障时可供应用程序使用,无论是在发生灾难时进行自动故障切换,还是在维护窗口期间进行计划切换。

  • 大中型企业。如果您有更多预算,请考虑在本地数据中心之外添加灾难恢复站点。该架构跨越数据中心,为数据库集群添加更多可用性层。即使主数据中心出现问题,它也能确保您的基础设施可用,数据安全一致。除了灾难恢复站点之外,此设计还包括一个外部节点层,因此如果站点之间的通信丢失,外部节点层将充当“真相来源”,并决定将哪个副本提升为主副本。在这样做的过程中,它通过防止大脑分裂的情况来保持集群的健康,并保持基础设施的高可用性。

  • 企业。企业HA架构为拥有额外资源的公司增加了另一层保障;对他们来说,停工将意味着毁灭性的收入和声誉损失;以及提供全球分布式服务的公司。它具有两个灾难恢复站点,为基础架构添加了更多层,以保持高可用性并保持应用程序正常运行。该体系结构基于分布在数据中心和地理可用性区域的紧密耦合数据库集群,与同步流复制、所有节点中相同的硬件配置和快速的节点间连接一起使用时,可以提供99.999%的正常运行时间。

哪个数据库最适合高可用性?

关于数据库高可用性的一个常见问题是哪个数据库最好。如果您计划使用专有数据库,请注意,由于繁重的合同和与数据可移植性损失相关的高昂成本(例如过高的云出口费用),您正在向供应商锁定敞开大门。

HA是一个重要的目标,但仅为HA而切换到专有数据库限制了开源的其他好处。除了支持强大的数据库HA架构外,开源还避免了昂贵的许可费,提供了数据可移植性,让您可以随时随地自由部署,并提供了由优先考虑创新和质量的贡献者社区设计的优秀软件。

开源数据库高可用性入门

开源数据库(如Postgres、MariaDB、MySQL和Redis)是HA的绝佳选择,但通常不包括内置HA解决方案。这意味着您需要仔细检查可用的各种扩展和工具。这些扩展和工具非常适合丰富各自的数据库,但随着环境的扩展,它们可能无法满足不断发展、更复杂的需求。

更大的复杂性意味着您和您的团队将需要某些技能和知识,例如,如何编写应用程序连接器、集成多个系统以及将业务需求与HA解决方案相协调。您还应该了解开源数据库、应用程序和基础设施。考虑可能需要外部专业知识来帮助您管理HA架构。

了解有关数据库高可用性的更多信息

确定哪个高可用性解决方案适合您的数据库环境在很大程度上取决于您的目标。了解Percona高可用性数据库支持如何保证应用程序正常运行。

如果PostgreSQL是您HA的首选数据库,请学习如何在我们的电子书中仅使用经过战斗测试的开源组件构建高可用的PostgreSQL,使用开源工具在PostgreSQL上实现高可用性。

原文标题:Understanding Database High Availability
原文作者:Matt Kane
原文链接:https://www.percona.com/blog/2022/06/30/understanding-database-high-availability/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论