<div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">thanks for the quick answer.</div><div dir="ltr"><br></div><div dir="ltr">I deleted pgpool_status and modified pgpool conf files for master slave streaming replication mode.<div><br></div><div>Now still the 2 things are puzzling:</div><div><br></div><div>1-When I start pg and pgpool on all 3 servers, the status looks good in show pool nodes.</div><div>However, when I try to do pcp_recovery_node for node 1 (41 tutorial section 8.3.7.1), it failed saying it node 1 is alive. </div><div><br></div><div>Then, I tried stopping pg and pgpool on node 1, and tried again.</div><div>This time, it failed again. The log on server1 shows this:</div><div><br></div><div>ERROR:  replication slot "server2" does not exist<br></div><div>failover.sh: drop replication slot server2 failed</div><div><br></div><div>So either my postgresql setup is not correct, or I missed something in the order pgpool should be set up.</div><div><br></div><div>(upon further investigation I found that this slot must have been created by follow_master script. </div><div>I do not know where that script must be called during initialization. I do not see it being called in server1 (master) logs)</div><div><br></div><div>I have done everything in the order that this tutorial (41) has described - but it is clear some things are not mentioned in that and I missed them several times.</div><div><a href="https://www.pgpool.net/docs/41/en/html/example-cluster.html">https://www.pgpool.net/docs/41/en/html/example-cluster.html</a><br></div><div><br></div><div>What exactly is pcp_recovery_node - is not clear to me. </div><div>Is it to bring up the fresh (never failed) standby node (see section # 8.3.7.1 in the tutorial), or a failed node back in the system (Tutorial section # 8.3.7.4)?</div><div>Is it mandatory to be called manually during pgpool cluster initialization?</div><div><br></div><div>Most importantly: When pcp_recovery_node is invoked, what services should be stopped on the soon-to-be standby node: pg or pgpool, both or no-one?</div><div><br></div><div>2-One more thing I observed is that past starting pgpool and pg on all 3, when I created a table on master (also inserted 2 rows into it) - I expected it to be replicated to other servers.</div><div>But it didn't happen.</div><div>So I am sure something is missing in my postgres replication setup, and it will be quite helpful if it is mentioned.</div><div>I am attaching my postgresql.conf.</div><div><br></div><div>Thanks for the support,</div><div>-Nirav</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Nov 7, 2021 at 5:04 AM Tatsuo Ishii <<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> Hello,<br>
> <br>
> After setting up pgpool2 4.1 based on below tutorial, I kept getting<br>
> unreliable behavior.<br>
> <br>
> <a href="https://www.pgpool.net/docs/41/en/html/example-cluster.html" rel="noreferrer" target="_blank">https://www.pgpool.net/docs/41/en/html/example-cluster.html</a><br>
> <br>
> So I followed all the steps and realized that I was not setting standbys as<br>
> suggested.<br>
> <br>
> First I start all 3 servers:<br>
> <br>
> systemctl start postgresql<br>
> systemctl start pgpool2<br>
> <br>
> After, when I ran following command from my primary:<br>
> <br>
> pcp_recovery_node -h {VIRTUAL IP} -p 9898 -U pgpool  -n 1<br>
> <br>
> It gave me error:<br>
> <br>
> ERROR:  process recovery request failed<br>
> DETAIL:  recovery request is only allowed in replication and streaming<br>
> replication modes.<br>
> <br>
> The tutorial does not mention much about how to set up streaming<br>
> replication mode. I set up all params in postgresql.conf as per the<br>
> tutorial.<br>
> <br>
> I have 2 questions:<br>
> 1 - what is the main issue? Is it the above error about streaming<br>
> replication mode?<br>
> 2 - If not, is my original setup is problematic?<br>
<br>
It is likely there's a mistake in your setup. The error says your<br>
setup is not either streaming replication mode nor native replication<br>
mode. You should check your pgpool.conf on *all* of the 3 nodes,<br>
especially make sure that:<br>
<br>
master_slave_mode = on<br>
master_slave_sub_mode = 'stream'<br>
<br>
> I have strong feeling it is the case:<br>
> Even when I stop pgpool on all nodes, and start node0, show pool_nodes show<br>
> node 0 as down, and node 1 as master (even though pgpool service is not<br>
> even running there!)<br>
> I repeatedly stopped and started postgres and pgpool, but node 1 constantly<br>
> remains the master.<br>
<br>
If your setup is a correct streaming replication mode, show pool_nodes<br>
should show each PostgreSQL role as "primary" or "standby". So I<br>
suspect there's a mistake in your setup.<br>
<br>
> Is there a way to reset all the previous runs of pgpool (maybe some old<br>
> state causing issues)<br>
<br>
Yes. the status file is located as "/var/log/pgpool/pgpool_status".<br>
It's a simple text file. It represents each PostgreSQL status<br>
something like "up" or "down" in each row.  You can safely remove the<br>
file while pgpool is stopping. The file will be automatically<br>
recreated upon starting up of pgpool and the current status will be<br>
reflected to the file.<br>
<br>
> Once I solve it, I also need to solve how to set up proper standby server<br>
> using pcp_recovery_node<br>
> <br>
> This setup is driving me mad.<br>
> -Nirav<br>
<br>
Please stay calm. Setting up a PostgreSQL cluster is not an easy task<br>
for everyone.<br>
<br>
Best regards,<br>
--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
</blockquote></div></div>