簡體   English   中英

pgpool在pcp_attach_node之后丟失了主節點

[英]pgpool lost master after pcp_attach_node

我有3個Postgresql DB節點(node0,node1,node2,版本9.4)和1個pgpool節點(3.7版)

第1步:

1.1)node0是主節點,node1和node2是備用節點。

1.2)“顯示pool_nodes”和“從pg_stat_replication中選擇*”按預期工作。

1.3)“插入”和“選擇”按預期方式工作。

第2步:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM