ThingWorx 高可用性 > PostgreSQL 高可用性
PostgreSQL 高可用性
PostgreSQL 10 必须在所有节点之间同步其数据,使接收读取或写入请求的每个节点均成为当前节点。没有用于消除潜在同步问题的单一解决方案,因此需要考虑多个 HA 选项。可在此处查看 PostgreSQL 10 HA 解决方案的比较列表 (表格形式): https://www.postgresql.org/docs/10/different-replication-solutions.htmll
对于 PostgreSQL HA 部署,PTC 建议使用如下图所示的配置。
PostgreSQL
ThingWorx 可以将大量内容写入其数据库中,并且在所有 PostgreSQL 节点之间保持写入序列不变是很重要的。PTC 建议在级联复制体系结构中配置同步复制的所有 PostgreSQL 节点,以此解决对同步复制施加的限制。此选项具有以下要求:
必须部署三个大小相同的 PostgreSQL 服务器节点。
一个主节点,用于将写入请求定向到该服务器。该主节点将 WAL 记录流式传输到备用节点,并且仅在备用节点确认时才会提交事务。
一个备用节点,用于接收来自主节点的流式传输内容。它还会将其内容流式传输到第二个备用节点。
一个附加备用节点,用于从第一个备用节点接收流式传输内容。在某个节点发生故障或一个节点离线的情况下,此节点将是剩余两个节点中的一个,且仍将完成主节点-备用节点确认的流式传输过程。
Pgpool-II
要完成 PostgreSQL HA 配置,必须将写入和读取请求定向到正确的节点,需要监控节点的健康状况,且需要使不正常的节点离线并对其进行修复。PTC 建议通过 Pgpool-II 来完成这些任务。此选项具有以下要求:
必须部署两个大小相同的 Pgpool 服务器节点。这些节点在主动/被动模式下运行。
一个节点作为主节点运行。它会将写入流量定向到 PostgreSQL 主节点,并将流量读入 PostgreSQL 备用节点。
一个节点作为备用节点运行。它会在 Pgpool 主节点发生故障时接管流量分发。
一个由 Pgpool-II 节点管理的虚拟 IP 地址。主节点将使用此地址接收来自客户端的 PostgreSQL 流量。
有关 Pgpool-II 的说明:
Windows 环境不支持 Pgpool-II。
PostgreSQL 的云实现可能会使用直接 DNS 故障转移机制,而不使用 Pgpool-II。
可以在 ThingWorx 应用程序所在的服务器上运行 Pgpool-II 进程,以减少 HA 环境中的服务器总数。
PTC 建议不要使用 Pgpool-II 来管理 PostgreSQL 复制。本文档中提供的指南使用 PostgreSQL 的流式复制和 Pgpool-II 实现流量传送、节点健康状况监控和故障转移自动化。