Postgresql
如何配置 PostgreSQL Hotstandby 自動故障轉移
我已將兩台 PostgreSQL 伺服器配置為通過流式傳輸進行熱備用。
我該如何配置它,以便當主伺服器宕機時,從伺服器將自動成為新的主伺服器?
故障轉移 - 自動或其他 - 不是由 PostgreSQL 直接提供的。
您將需要像repmgr這樣的外部工具。
新發布的 repmgr 2.0 支持自動故障轉移。但是,我建議您認真考慮是否應該實際使用它。自動手動觸發的故障轉移通常更安全。
如果您確實選擇使用自動故障轉移,則應確保將自動故障轉移作為正常操作的一部分,以確保它在您的環境中真正工作。否則,這只是一種虛假的安全感,當某些東西真的發生故障時,它可能會使整個系統陷入混亂。
當然,您應該定期測試任何故障轉移設置,但至少在手動觸發故障轉移的情況下,您知道它會發生並準備好在出現問題時介入。
這不僅僅是提升伺服器並將舊主伺服器重建為副本的問題。您還必須處理將客戶端連接更改為新伺服器的需求(使用 PgBouncer、PgPool-II 或 HAProxy 之類的東西)。您還需要可靠地終止舊伺服器,以免出現分歧,兩台伺服器都認為它們是主伺服器,並且一些客戶端正在寫入每個伺服器。
在 PostgreSQL 文件和 wiki 上有很多關於這一切的資訊,所以我建議你從那裡開始。