PostgreSQL 高可用性
下圖說明 PTC 對 PostgreSQL HA 部署的建議組態。
PostgreSQL
ThingWorx 可以將大量內容寫入其資料庫,請務必保持所有 PostgreSQL 節點範圍內寫入序列不變。PTC 建議配置所有 PostgreSQL 節點以實現在下聯式複製架構內同步複製,並使用置於同步複製上的限制。此選項具有下列需求:
• 必須部署三個大小相等的 PostgreSQL Server 節點。
◦ 將一個節點用作主要伺服器,且將寫入請求導向至此節點。主要伺服器將 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。
• Pgpool-II 流程可以與 ThingWorx 應用程式在相同的伺服器上執行,以減少 HA 環境中伺服器的總數。
• PTC 不建議使用 Pgpool-II 管理 PostgreSQL 複製。本文件提供的指南使用 PostgreSQL 的串流複製與 Pgpool-II 進行流量路由、節點健康狀況監視和容錯移轉自動化。