计划外停机运行的平均成本每小时300000到500000美元,企业越来越多地使用高可用性(HA)技术应用程序正常运行时间最大化。不幸的是,使用某些开源数据库软件HA架构的一部分,可以提出了重大挑战。尽管它的好处,PostgreSQL软件提出了这样的挑战。
PostgreSQL开始高可用性提供了基础,包括物理和逻辑功能和配置复制和一致的物理备份时间点恢复(PITR)功能。但PostgreSQL并不提供一个完整的HA解决方案。因此,dba必须采取同样的方式实现HA PostgreSQL,汇集来自多个源的开放源码工具和扩展。
这堆乱七八糟的技术形成了一个潜在的单点故障(SPOF)和一个中断服务的最终用户,高可用性的东西应该避免。因为大多数规模会有后果,停机的风险只会恶化随着环境的发展。高可用性设计曾经工作过的地方,它再也不能跟上更复杂的需求。
这个博客强调注意事项保持自己的PostgreSQL数据库高可用性和健康。我们将检查与PostgreSQL建立高可用性软件的复杂性,并提供链接雷竞技下载官网Percona HA PostgreSQL参考架构企业的每一个大小(启动/小型,中型,大型和企业)。
定义一种数据库系统高可用性
高可用性是必不可少的任何业务,依靠数字交互——今天,这意味着几乎每个人。可容忍的停机时间取决于业务规模、操作和目标,但停机必须最少的(请参阅下面的“测量高可用性”图表)。HA在PostgreSQL数据库提供几乎连续可用性、容错性和灾难恢复。它使企业和组织,以满足正常运行时间和服务级别目标,保护关键业务数据和维护性能数据库。
概括地说,实现HA在PostgreSQL,必须有:
- 冗余:确保数据冗余和提供连续的性能当主服务器失败,数据库驻留在多个副本副本服务器。同样的变化在主数据库的副本。这样可以确保连续的业务操作。PostgreSQL软件支持同步流复制、异步流复制,和逻辑复制。
- 没有单点故障(SPOF):如果数据库基础设施组件的失败可能导致停机,该组件被认为是SPOF。连一个SPOF的存在意味着没有实现高可用性。大多数会是规模的结果,在设计,曾经足够(优秀,甚至)不再满足进化,更复杂的需求。停机也可以归因于瓶颈将会为应用程序而不是数据库架构设计。
- 故障转移:这个功能是转换——在这两个计划停机和非计划的情况下从一个失败的主服务器和备用服务器。当主服务器出现故障时,备用服务器接管新主。故障转移是至关重要的减少停机时间。
同时,概括地说,一个PostgreSQL高可用性解决方案必须包括四个关键领域:
- 基础设施:这是物理或虚拟硬件数据库系统依赖于运行。没有足够的基础设施(物理或虚拟服务器、网络等),不可能有高可用性。
- 拓扑管理:这是软件管理数据库和相关的能力在发生故障时保持一致。
- 连接管理:这是特别相关的软件管理网络和连接方面的数据库。连接管理器集群解决方案通常包。然而,在异步集群部署高可用性的连接管理器是强制性的。
- 备份和连续归档:PostgreSQL异步复制依赖于写前日志(细胞膜)流,这是至关重要的集中存储,所有节点可以访问。这是主节点的位置将存档WAL段,和副本将恢复在主节点上的任何部分不存在了。具有极端重要的保持复制工作如果任何复制延迟和副本节点不能发生在主要的工作速度。这些文件还可以用于时间点恢复如果任何灾难发生。
关键因素决定高可用性需求
进入更多的细节之前,重要的是要确定你的工作负载和服务需要一个HA架构和,如果是这样,你在多大程度上哈。这些问题的答案将帮助你评估需要高可用性PostgreSQL解决方案根据您的业务需求,潜在风险,和操作限制:
- 多少时间你的业务能容忍在金融冲击之前,失去客户,或都有?
- 你的业务的行业高可用性需求吗?如果是这样,有什么法律责任?
- 需要多长时间来恢复数据库失败在你当前的设置?你能负担得起,恢复时间吗?
- 你能负担得起必要的硬件、软件和操作成本,维护一个PostgreSQL HA解决方案?
- 你有专业知识和资源来设计、实现,和管理PostgreSQL的高可用性解决方案?
测量高可用性
根据前一个问题的答案,实现高可用性可能意味着不同的事情不同的业务。这取决于停机一个组织能承受多少。流媒体服务,例如,过度的停机时间可能造成重大的经济和名誉损失。其他组织可以忍受几分钟的停机时间没有负面影响终端用户。
下面的表显示了大量的停机时间为每个级别的可用性,从“两个9”到“五个9”(公顷)的黄金标准。你会发现高可用性不交付100%的正常运行时间,但非常接近。

PostgreSQL的流行
在更深入挖掘PostgreSQL高可用性的内部运作,让我们简要地检查这个开源的新兴的流行的关系数据库软件。
PostgreSQL中迅速获得支持,近年来专业开发人员。StackOverflow统计数据显示,26%的开发者优先在2017年2019年的34%和2021年的40%。最近,StackOverflow的2022年堆栈开发人员调查,PostgreSQL略微领先于MySQL(46.48%到45.68%)最受欢迎的专业开发人员之间的数据库平台。
PostgreSQL青睐在关系数据库选项的复杂的数据分析,数据科学绘图和人工智能功能。PostgreSQL闻名强大和先进的功能,包括同步和异步复制,全文搜索的数据库,和本地支持JSON-style存储键值存储和XML。
PostgreSQL是高度可扩展的,允许用户添加自定义功能通过插件和扩展。它还包括工具如repmgr和Patroni自动故障转移和集群管理。
作为一个更先进的数据库管理系统,PostgreSQL非常适合在大型环境中执行复杂查询快。因为它容易支持故障转移和冗余,它往往是金融机构和制造商的首选。也是首选使用地理信息系统(GIS)和地理空间数据。PostgreSQL最流行的数据库管理系统(排名第四DB-Engines, 2023年3月)。
和它是开源的
因为PostgreSQL软件是开源的,它是免费的专利限制,可以跟厂商锁定。开发人员可以定制的源代码和尝试新的应用程序没有大的预算。公司可以更容易地规模基础设施——向上或向下,以满足经济条件和不断变化的业务目标。对于开源软件,业务不是困到使用一个提供者的软件,支持,或服务。相反,业务可能设计和重新设计系统客户业务目标预期变化和发展。
与开源,国际社会有一个专门的志愿者驾驶PostgreSQL数据库技术的发展。开源标准和社区支持使开发人员和dba能够专注于加速PostgreSQL特性创建和提高可用性、性能、可伸缩性和安全性。
PostgreSQL高可用性是如何工作的呢?
现在,让我们进入更详细的关于高可用性和PostgreSQL。上述几种方法复制形式的支柱PostgreSQL高可用性。它们允许数据冗余、容错、故障转移在灾害中,停电,人类入侵——任何场景。这些方法包括:
流复制
与流复制整个数据库集群复制从一台服务器,称为初级,到一个或多个备用服务器。主服务器连续流写前日志(细胞膜)到备用服务器,应用更改自己的数据库副本。流复制有两种模式:
- 同步流的复制:在这种模式下,主服务器等待确认前至少一个备用服务器提交一个事务。确认保证了数据复制到一定程度的冗余以最小的数据丢失。
- 异步流复制:这是默认的方式在PostgreSQL设置复制数据。在这种模式下,主服务器不等待确认之前的交易。有利的一面是增强性能,但可以在发生故障时数据丢失。
逻辑复制
这个数据复制方法出现在逻辑层的数据库对象,例如表、而不是在物理层的幕后存储。不像流复制,复制整个集群中,逻辑复制允许更多的控制是否复制复制的数据。
的两个主要组件逻辑复制发布者和订阅者。发行人股票数据和用户接收并应用复制数据。这种方法为复制配置提供更大的灵活性。
除了和连接到复制方法,这些组件还在高可用性至关重要:
故障转移
如上所述,这是当一个备用服务器成为新的主服务器由于各种原因,计划或突然和意外。在PostgreSQL,故障转移可以手动触发,也可以是自动化,监控系统发起行动。raybet雷竞技竞猜在线官网
故障转移包括以下步骤:
- 监控系统raybet雷竞技竞猜在线官网发送警报时,主服务器不可用时,触发故障转移过程。
- 另一个服务器被选为新的主服务器。
- 应用程序重定向到新的主服务器,常态继续使用新的主服务器。
自动切换
这个方法是用来减少市中心,取代人工干预的必要性。数据库系统触发自动故障转移的即时发生预定的条件。
自动切换,集群管理工具或外部集成的工具监控主服务器24/7,检查它的连接,做100%的工作。raybet雷竞技竞猜在线官网自动切换过程开始如果主服务器检测到的任何故障,备用服务器成为新的主服务器。
集群管理工具
一些集群管理工具,如Patroni和复制经理,简化配置,设置PostgreSQL的监视和管理高可用性。raybet雷竞技竞猜在线官网正如上面介绍的,这些工具自动化故障转移等任务,监控和维护,使其更容易维护高可用性PostgreSQL的环境。raybet雷竞技竞猜在线官网
负载平衡
高可用性通常包括数据库工作负载分布到多个服务器,以确保最佳性能,避免瓶颈。PostgreSQL支持各种负载平衡技术——包括连接池和连接路由分发传入的查询和事务在多个数据库服务器。
连接池包括建立数据库连接的可用性,可以由多个应用程序。Pgbouncer pgpool-II联系经理,接受客户端连接,管理连接池,并直接请求到适当的后端服务器。
代理负载平衡器像pgpool-II、pgbouncer HAProxy有能力连接路由到不同的数据库服务器。这样一个代理充当应用程序和数据库服务器之间的交通警察。由负载平衡配置,代理将来自应用程序的请求转发到相应的后端服务器。Pgpool-II无缝分裂的额外容量的读和写,而另两个必须使用一个单独的端口,和读/写分割必须由应用程序。
DNS负载均衡分发应用程序连接到多个PostgreSQL数据库服务器使用域名系统(DNS)。DNS负载均衡,DNS记录相同的主机名配置但是不同的IP地址。当应用程序连接到PostgreSQL数据库,DNS服务器连接应用程序可用的IP地址在某种优先或旋转的方式。这个方法很容易设置,但它不是很直观的或容易调整,以满足不断变化的服务器设置配置。
raybet雷竞技竞猜在线官网监测和报警
在PostgreSQL数据库,维护高可用性,关键是要有监控和报警机制。raybet雷竞技竞猜在线官网有很多的健康和性能监测工具PostgreSQL实例。raybet雷竞技竞猜在线官网这些工具确保通知发送检测到问题和潜在的问题。
让这一切在PostgreSQL架构
当成功地实现,我们检查的组件可以成功在PostgreSQL数据库高可用性。但是,如上所述,PostgreSQL社区版本不准备好了哈。需要做的工作,正确的体系结构,通常一些外界的帮助。
让我们先从架构。
有一个不幸的误解,高可用性解决方案太贵了创业和小企业。但是当使用开源工具,再加上一个raybet.club ,可以实现高可用性在PostgreSQL没有大的价格标签或过于复杂环境的需要。它可以通过构建HA基础设施在一个数据中心。
随着业务的增长,所以应该你的高可用性架构。为中型和大型企业停机时间的后果,无论是收入损失和侵蚀的客户情绪,可以是巨大的。高可用性需要更多的容错,IT人员冗余系统,可能更大的投资。不过,当使用开源工具,可以实现高可用性的成本效益,没有供应商的威胁,可以来自企业中的。中型和大型企业,Percona提供了一个架构可用性传播的跨数据中心雷竞技下载官网增加更多层集群的可用性。
为企业的挑战和潜在后果指数增长。一个架构必须解决更多。Perc雷竞技下载官网ona架构,例如,功能两个灾难恢复站点和增加层基础设施,以保持高可用性和应用程序启动并运行。此体系结构中,基于紧密耦合的数据库集群分布在数据中心和可用性区域,可以提供HA水平高达99.999%使用同步流复制时,所有节点相同的硬件配置,快速节间连接。
你可以得到更多的细节在Percona -和视图实际架构雷竞技下载官网raybet.club 网页或下载白皮书,雷竞技下载官网PostgreSQL Percona分布:高可用性与流复制。但对于初学者来说,这是极简主义的高可用性架构元素PostgreSQL。这样的架构将至少包括这四个组件的设计:
- 数据库节点:在PostgreSQL高可用性架构,比如那些描绘流复制、逻辑复制或共享磁盘集群化—多个数据节点分布工作负载和维护数据一致性。通常,每个数据节点包含一个数据的复制或子集。
- HA控制器:这个机制确定了主节点发生故障时,确保没有大脑网络分区/分裂。这个组件需要一个机制来执行故障转移的主节点上的失败。它将选举的一个副本被提升为新的主节点。
- 连接路由器:这种机制修改查询路由,这样应用程序请求到达新主节点。
- 备份组件:这个软件或机制提供了快速、一致和可靠的备份和恢复PostgreSQL和保证所有细胞膜日志运往普遍访问的存储区域。
再一次,上面的描述立即HA架构是一个极简主义者。它可以,通常,变得更加复杂。雷竞技下载官网Percona提供证明架构让你去,我们提供具有成本效益的选择有所帮助。
步骤来部署和维护PostgreSQL高可用性
一旦确定的方法复制和架构设计,是时候部署它。与建筑本身,部署参军时可以更容易、更划算高可用性支持PostgreSQL从外部专家。这取决于你有什么专业知识的员工。
每个数据库环境都是不同的,所以部署程序可以不同,但这里有一些通用的步骤:
- 主服务器配置。主读写节点,该服务器将编排数据复制到备用服务器。
- 创建一个主服务器的备份在备用服务器或服务器上。
- 在热备用配置备用服务器运行模式。热备份允许备用服务器用于读取。它可以防止并发症和损失在发生故障或将主服务器的维护。
- 配置负载均衡。使用pgpool-II HAProxy或其他PostgreSQL负载均衡工具,数据库将准备高流量和分发阅读跨多个服务器查询。
- 实现备份和灾难恢复。由于HA本身并不能保证你的数据保护,您应该实现数据持久性和灾难恢复的机制。
- 定期备份和测试恢复过程,以确保数据的完整性。
- 测试设置。这里有几个选项。理想情况下,都可以使用。
- 端到端(E2E)测试虽然费时,将显示所有的组件和应用程序是否HA的设置工作。
- 混乱的工程是另一个选择。这是当工程师介绍问题在整个数据库的基础设施,所以他们可以识别故障点并创建解决方案,避免昂贵的停机时间和沮丧的潜在损失客户。
安全考虑高可用性PostgreSQL
当然,保持数据库安全需求的关注。再次,应该强调,每个环境都是独一无二的,和特定的安全需求相应会有所不同。重要的是要检查PostgreSQL的文档。在某些情况下,如果没有专职的专业保持足够的安全水平高可用性集群,这是明智的考虑支持。
但是你是否可以让你自己环境安全或需要外界的帮助,有一些一般的最佳实践获得集群高可用性环境中:
配置SSL / TLS加密的沟通与数据库集群。你可以禁用不必要的程序,并且使它只出现在可信网络连接。
控制访问。实现基于角色的访问控制(RBAC)为PostgreSQL可以是一个有用的管理权限和限制对敏感数据的访问方式。
使用强身份验证。这意味着强大的用户密码,经常改变。在更敏感的情况下,建议实现更安全的方法如基于证书的身份验证或LDAP集成。支持多种PostgreSQL外部身份验证方法,包括GSSAPI、LDAP和半径。
审计、日志,定期审查。您可以配置PostgreSQL记录查询,登录失败,行政活动,和任何其他事件。然后,您可以在任何时间检查日志发现潜在的安全漏洞或可疑活动。
进行定期更新。尽快应用最新的PostgreSQL安全补丁和bug修复时可用。保持活跃,或者至少是细心的,作为一个全球开源社区的参与者。保持了解最新的PostgreSQL安全信息,包括新闻推荐漏洞和补丁。
雷竞技下载官网Percona高可用性架构和支持
没有出行;实现高可用性和PostgreSQL -是否需要一些工作你还是有别人做。但是如果你想避免或沟前面描述的渐进的高可用性的方法,Percona HA PostgreSQL架构整合开源工具和组件互操作性增强而发硬,确保您的应用程序总是获得他们所需要的数据。雷竞技下载官网你自己可以实现架构,根据需要拜访Percona,或让我们管理您的PostgreSQL数据库完全哈。雷竞技下载官网
不管你选择的支持(你可以在任何时候改变你的想法),你就会拥有一个证明架构,你会避免厂商锁定,可能过高的成本,和其他缺陷的专有的安排。
一个很好的起点是我们的raybet.club web页面。那里,你可以找到现成的PostgreSQL高可用性架构专门设计和独立解决小型企业和创业公司的需要,大、中型企业,和企业和全球分布的企业。
同时,查看我们的白皮书雷竞技下载官网PostgreSQL Percona分布:高可用性与流复制。它将向您展示如何齐心协力开源工具和组件实现HA在PostgreSQL的最高水平,即使你的规模。白皮书还提供了现成的体系结构。
下载白皮书:PostgreSQL Perco雷竞技下载官网na分布:高可用性与流复制
常见问题
以下是常见问题和短答案PostgreSQL数据库的高可用性。在上面的部分中更详细的给出了答案。
高可用性和灾难恢复之间的区别是什么?
高可用性通过复制,提供连续的PostgreSQL数据库的访问故障转移机制,没有单点故障。灾难恢复是灾难性事件后恢复数据和服务通过使用备份、复制和恢复过程。
高可用性架构消除所有的停机时间吗?
高可用性不交付100%的正常运行时间,但非常接近。HA的黄金标准是“五个9”,这意味着数据库可用99.999%的时间。
实现高可用性架构时常见的挑战是什么?
PostgreSQL社区版本没有附带的高可用性特性和功能。这通常需要一个支离破碎的方法实现HA。dba必须召集几个开放源码工具和扩展从多个来源。
什么技术可以用于高可用性架构?
必须一起使用多种技术来实现高可用性在PostgreSQL数据库中。关键技术包括复制、故障转移、负载平衡、集群管理。
频率高可用性架构应该测试和验证吗?
测试和验证的频率取决于几个因素,包括关键业务和HA架构的复杂性。当然,季度深入检查为宜,对于更重要的情况,每月可能可能是明智的。





