<div dir="ltr">Hi Tatsuo,<div><br></div><div>Thanks for letting me know the process. Just curious to know what will happen if pg1 reboots and comes back and in the meanwhile pg2 got promoted as master. What is the expectation in this situation ? </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 1, 2020 at 10:32 AM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>&gt; 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">&gt; Hi Tatsuo,<br>
&gt; <br>
&gt; Thanks for your email. Yes, I have read the message and fixed the pcp<br>
&gt; authentication issue.<br>
&gt; <br>
&gt; Now, I&#39;m facing a different issue. I will try to explain it step by step.<br>
&gt; <br>
&gt; Sequence:<br>
&gt; 1. pg1 is primary and pg2 is standby<br>
&gt; 2. Stop postgres service on pg1<br>
&gt; 3. Pgpool executes failover<br>
&gt; 4. Now pg2 is my primary. I verified all the configurations.<br>
&gt; 5. Started postgres service on pg1<br>
&gt; 6. Trying to recover failed node<br>
&gt; <br>
&gt; postgres@ip-172-31-39-241:/etc/pgpool2/4.0.9$ pcp_recovery_node -h<br>
&gt; localhost -p 9898 -n 0<br>
&gt; Password:<br>
&gt; ERROR:  process recovery request failed<br>
&gt; DETAIL:  primary server cannot be recovered by online recovery.<br>
<br>
You shoud have not started pg1 postgres at this<br>
point. pcp_recovery_node should not be executed on running node. See<br>
the manual:<br>
<br>
Note: The recovery target PostgreSQL server must not be running for<br>
performing the online recovery. If the target PostgreSQL server has<br>
already started, you must shut it down before starting the online<br>
recovery.<br>
<br>
If you have not started pg1 then pcp_recovert_node would succeed.<br>
<br>
&gt; Log says verify_backend_node_status: decided node 0 is the true primary<br>
&gt; <br>
&gt; This command hangs<br>
&gt; psql -U postgres -h localhost -p 9999 --pset pager=off -c &quot;show pool_nodes&quot;<br>
&gt; <br>
&gt; I would like to know how pgpool is considering node 0 which is pg1 as true<br>
&gt; primary ?<br>
<br>
Because pgpool thinks the first primary node found is the true primary<br>
node if there is<br>
<br>
&gt; Then what did I do ?<br>
&gt; 1. Cleaned everything on pg1 and manually configured it as standby.<br>
&gt; 2. Started postgres service<br>
&gt; 3. Log says<br>
&gt; 2020-08-31 13:40:00: pid 2459: DEBUG:  do_query: extended:0 query:&quot;SELECT<br>
&gt; pg_is_in_recovery()&quot;<br>
&gt; 2020-08-31 13:40:00: pid 2459: DEBUG:  verify_backend_node_status: there&#39;s<br>
&gt; no standby node<br>
&gt; 2020-08-31 13:40:00: pid 2459: DEBUG:  node status[0]: 0<br>
&gt; 2020-08-31 13:40:00: pid 2459: DEBUG:  node status[1]: 1<br>
&gt; <br>
&gt; This command executes now<br>
&gt; postgres@ip-172-31-39-241:/etc/pgpool2/4.0.9$ psql -U postgres -h localhost<br>
&gt; -p 9999 --pset pager=off -c &quot;show pool_nodes&quot;<br>
&gt;  node_id | hostname | port | status | lb_weight |  role   | select_cnt |<br>
&gt; load_balance_node | replication_delay | last_status_change<br>
&gt; ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+---------------------<br>
&gt;  0       | pg1      | 5432 | down   | 0.500000  | standby | 0          |<br>
&gt; false             | 0                 | 2020-08-31 13:35:44<br>
&gt;  1       | pg2      | 5432 | up     | 0.500000  | primary | 0          |<br>
&gt; true              | 0                 | 2020-08-31 13:35:44<br>
&gt; (2 rows)<br>
&gt; <br>
&gt; I checked between pg1 and pg2 and see that streaming replication is working.<br>
&gt; <br>
&gt; Then I used pcp_attach_node to attach standby<br>
&gt; <br>
&gt; postgres@ip-172-31-39-241:/etc/pgpool2/4.0.9$ pcp_attach_node -h localhost<br>
&gt; -p 9898 -n 0<br>
&gt; Password:<br>
&gt; pcp_attach_node -- Command Successful<br>
&gt; postgres@ip-172-31-39-241:/etc/pgpool2/4.0.9$ psql -U postgres -h localhost<br>
&gt; -p 9999 --pset pager=off -c &quot;show pool_nodes&quot;<br>
&gt;  node_id | hostname | port | status | lb_weight |  role   | select_cnt |<br>
&gt; load_balance_node | replication_delay | last_status_change<br>
&gt; ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+---------------------<br>
&gt;  0       | pg1      | 5432 | up     | 0.500000  | standby | 0          |<br>
&gt; true              | 0                 | 2020-08-31 14:09:31<br>
&gt;  1       | pg2      | 5432 | up     | 0.500000  | primary | 0          |<br>
&gt; false             | 0                 | 2020-08-31 14:02:35<br>
&gt; (2 rows)<br>
&gt; <br>
&gt; Then I tried to perform a test operation and it executed successfully.<br>
&gt; postgres@ip-172-31-39-241:/etc/pgpool2/4.0.9$ psql -U postgres -h localhost<br>
&gt; -p 9999 --pset pager=off -c &quot;create database covid&quot;<br>
&gt; CREATE DATABASE<br>
&gt; <br>
&gt; Am I missing something in this failover process ? Please let me know if you<br>
&gt; need any additional details.<br>
&gt; <br>
&gt; On Tue, Sep 1, 2020 at 3:03 AM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; Praveen,<br>
&gt;&gt;<br>
&gt;&gt; Have you read this message? I wonder if you have fixed the issue or not.<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt; --<br>
&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt; 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>
&gt;&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;<br>
&gt;&gt; From: Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt;<br>
&gt;&gt; Subject: [pgpool-general: 7208] Re: Query regarding failover and recovery<br>
&gt;&gt; Date: Thu, 20 Aug 2020 08:51:04 +0900 (JST)<br>
&gt;&gt; Message-ID: &lt;<a href="mailto:20200820.085104.891242161358675858.t-ishii@sraoss.co.jp" target="_blank">20200820.085104.891242161358675858.t-ishii@sraoss.co.jp</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt; The contents of pcp.conf looks incorrect.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; postgres:md53175bce1d3201d16594cebf9d7eb3f9d<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The hashed password must not start with &quot;md5&quot;.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; To create proper pcp password, please follow the instruction in the<br>
&gt;&gt; manual:<br>
&gt;&gt; &gt; <a href="https://www.pgpool.net/docs/40/en/html/configuring-pcp-conf.html" rel="noreferrer" target="_blank">https://www.pgpool.net/docs/40/en/html/configuring-pcp-conf.html</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; Hello,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Thanks for the clarification. I&#39;m trying to execute and getting below<br>
&gt;&gt; &gt;&gt; error. I&#39;m attaching configs for your reference. Can you please help ?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$ psql -U postgres -h localhost -p 9999<br>
&gt;&gt; &gt;&gt; --pset pager=off -c &quot;show pool_nodes&quot;<br>
&gt;&gt; &gt;&gt;  node_id | hostname | port | status | lb_weight |  role   | select_cnt |<br>
&gt;&gt; &gt;&gt; load_balance_node | replication_delay | last_status_change<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+---------------------<br>
&gt;&gt; &gt;&gt;  0       | pg1      | 5432 | down   | 0.500000  | standby | 0          |<br>
&gt;&gt; &gt;&gt; false             | 0                 | 2020-08-19 09:02:46<br>
&gt;&gt; &gt;&gt;  1       | pg2      | 5432 | up     | 0.500000  | primary | 0          |<br>
&gt;&gt; &gt;&gt; true              | 0                 | 2020-08-19 09:02:46<br>
&gt;&gt; &gt;&gt; (2 rows)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$ pcp_recovery_node -h localhost -p<br>
&gt;&gt; 9898 -n<br>
&gt;&gt; &gt;&gt; 0<br>
&gt;&gt; &gt;&gt; Password:<br>
&gt;&gt; &gt;&gt; FATAL:  authentication failed for user &quot;postgres&quot;<br>
&gt;&gt; &gt;&gt; DETAIL:  username and/or password does not match<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; postgres@pgp1:/etc/pgpool2/4.0.9$<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Wed, Aug 19, 2020 at 10:22 AM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; I have 3 servers with two postgres (9.6) and one pgpool (4.0.9).<br>
&gt;&gt; Postgres<br>
&gt;&gt; &gt;&gt;&gt; &gt; is configured with streaming replication.<br>
&gt;&gt; &gt;&gt;&gt; &gt; When I manually stop postgres service on primary node, failover has<br>
&gt;&gt; &gt;&gt;&gt; &gt; happened successfully.<br>
&gt;&gt; &gt;&gt;&gt; &gt; Now I started postgres service on old primary node which is expected<br>
&gt;&gt; to<br>
&gt;&gt; &gt;&gt;&gt; be<br>
&gt;&gt; &gt;&gt;&gt; &gt; converted as slave, pgpool is not triggering<br>
&gt;&gt; recovery_1st_stage_command =<br>
&gt;&gt; &gt;&gt;&gt; &gt; &#39;recovery_1st_stage.sh&#39;<br>
&gt;&gt; &gt;&gt;&gt; &gt; May I know what could be the reason ?<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; That is an expected behavior. The node previously brought down is left<br>
&gt;&gt; &gt;&gt;&gt; as &quot;down&quot; by pgoool. This is intentional. You need to issue<br>
&gt;&gt; &gt;&gt;&gt; pcp_recovery_node against the node (previous primary node in your<br>
&gt;&gt; &gt;&gt;&gt; case) to make it online again.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; When a node is brought down, there might be a reason: for example<br>
&gt;&gt; &gt;&gt;&gt; needed to repair the hardware. So in general it&#39;s not safe to<br>
&gt;&gt; &gt;&gt;&gt; automatically restart the previously down node.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Best regards,<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; &gt;&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt; &gt;&gt;&gt; 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>
&gt;&gt; &gt;&gt;&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; *Regards,*<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; *K S Praveen KumarM: +91-9986855625 *<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; pgpool-general mailing list<br>
&gt;&gt; &gt; <a href="mailto:pgpool-general@pgpool.net" target="_blank">pgpool-general@pgpool.net</a><br>
&gt;&gt; &gt; <a href="http://www.pgpool.net/mailman/listinfo/pgpool-general" rel="noreferrer" target="_blank">http://www.pgpool.net/mailman/listinfo/pgpool-general</a><br>
&gt;&gt;<br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; <br>
&gt; <br>
&gt; *Regards,*<br>
&gt; <br>
&gt; <br>
&gt; *K S Praveen KumarM: +91-9986855625 *<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><font style="font-family:&quot;courier new&quot;,monospace" size="1"><b style="color:rgb(102,102,102)">Regards,<br><br></b></font><div style="color:rgb(102,102,102)"><font size="1"><b><font face="&#39;comic sans ms&#39;, sans-serif"><font style="font-family:&quot;courier new&quot;,monospace" size="1">K S Praveen Kumar<br>M: +91-9986855625 </font><br></font></b></font></div></div>