[英]pgpool lost master after pcp_attach_node
我有3個Postgresql DB節點(node0,node1,node2,版本9.4)和1個pgpool節點(3.7版)
1.1)node0是主節點,node1和node2是備用節點。
1.2)“顯示pool_nodes”和“從pg_stat_replication中選擇*”按預期工作。
1.3)“插入”和“選擇”按預期方式工作。
2.1)我在node0中手動停止了postgresql服務。
2.2)PGPool運行故障轉移腳本,node1成為主節點,node2成為備用節點。
2.3)“顯示pool_nodes”顯示節點0處於關閉狀態,“選擇* from pg_stat_replication”僅顯示一個備用節點即node2。 他們是正確的。
2.4)“插入”和“選擇”按預期方式工作。
3.1)我手動啟動node0作為node1的備用數據庫。
3.2)“從pg_stat_replication中選擇*”表明node0和node2都是備用的,它們按預期工作。
3.3)“ show pool_nodes”顯示node0仍為“ down”,這是預期的。
3.4)“ pcp_attach_node -n 0”,它帶回node0。 “ show pool_nodes”顯示node0現在處於“ up”狀態,這是預期的。
3.5)但是,“插入”將失敗,並顯示消息“錯誤:無法在只讀事務中執行INSERT”。
3.6)“ select * from pg_stat_replication”顯示0行,這意味着兩個備用節點消失了。
3.7)顯然,所有“插入”和“選擇”都分配給node0,而不是node1。
PGPool在主從流模式下運行。
因此,我在步驟3.4中錯過了什么來帶回失敗的節點?
我遇到了和你一樣的問題。 但是,我的Pgpool版本是3.7.2。 我發現此鏈接解決了我的問題:
https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=e8baa3f0ee1a24f833cfa6cc5d0104b5cefe7b04
我在主/從復制中有三個postgresql數據庫節點。 當節點0是主節點時,我的Pgpool可以正常工作。 在主節點故障轉移到節點1和節點0作為備用節點進行故障回復之后,pgpool將我的寫查詢發送到節點0,並獲得只讀事務錯誤。
我再做一次檢查。 我進行主/從復制,其中節點0為熱備用,節點1為主要。 我啟動pgpool並嘗試創建/插入數據庫。 Pgpool始終將我的寫查詢發送到節點0。下載最新的源代碼並自己構建Pgpool之后,問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.