[pgpool-general: 9423] pcp_commands failing
Sbob
sbob at quadratum-braccas.com
Thu Apr 24 01:45:33 JST 2025
All;
I have setup pgpool as a read only locd balancer, I have 4 postgreSQL
nodes replicating via streaming replication, but I only configured the 3
standby nodes in the pgpool.conf file. I also configured my pcp.conf
file like this:
$ pg_md5 postgres
e8a48653851e28c69d0506508fb27fc5
then I added the username:hash line in my pcp.conf file
$ tail /etc/pgpool-II/pcp.conf
# Be aware that there will be no spaces or tabs at the
# beginning of the line! although the above example looks
# like so.
#
# Lines beginning with '#' (pound) are comments and will
# be ignored. Again, no spaces or tabs allowed before '#'.
# USERID:MD5PASSWD
postgres:e8a48653851e28c69d0506508fb27fc5
once I start pgpool I can run a show pool_nodes:
$ psql -h localhost
psql (14.17)
Type "help" for help.
postgres=# show pool_nodes;
node_id | hostname | port | status | pg_status | lb_weight |
role | pg_role | select_cnt | load_balance_node | replication_delay |
replication_state | replication_sync_state | last_status_change
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+-------------------+-------------------+-------------------+------------------------+---------------------
0 | 192.168.122.6 | 5432 | up | up | 0.333333 |
standby | standby | 0 | false | 0
| | | 2025-04-23 10:07:06
1 | 192.168.122.81 | 5432 | up | up | 0.333333 |
standby | standby | 0 | false | 0
| | | 2025-04-23 10:07:06
2 | 192.168.122.217 | 5432 | up | up | 0.333333 |
standby | standby | 0 | true | 0
| | | 2025-04-23 10:07:06
(3 rows)
Next I run a pcp_node_count:
$ pcp_node_count -U postgres -h localhost -W
Password:
ERROR: connection to host "localhost" failed with error "Connection refused"
or a pcp_pool_status without the -h localhost:
$ pcp_pool_status -U postgres -W
Password:
ERROR: connection to socket "/tmp/.s.PGSQL.9898" failed with error "No
such file or directory"
it seems odd that its trying to connect to a socket in /tmp even though
I have :
pcp_socket_dir = '/run/pcp'
the /run/pcp directory is owned by postgres
I get the same behavior if I start pfpool with :
-F /etc/pgpool-II/pcp.conf
I am running everything as the postgres user and the postgres user owns
the pcp.conf file:
total 164
-rw-r--r--. 1 root root 1543 Mar 3 04:26 aws_eip_if_cmd.sh.sample
-rw-r--r--. 1 root root 2554 Mar 3 04:26 aws_rtb_if_cmd.sh.sample
-rw-r--r--. 1 root root 1044 Mar 3 04:26 escalation.sh.sample
-rw-r--r--. 1 root root 2793 Mar 3 04:26 failover.sh.sample
-rw-r--r--. 1 root root 4644 Mar 3 04:26 follow_primary.sh.sample
-rw-r--r--. 1 postgres postgres 941 Apr 23 09:59 pcp.conf
-rw-r--r--. 1 root root 858 Mar 3 04:26 pcp.conf.sample
-rw-r--r--. 1 root root 53278 Apr 23 09:57 pgpool.conf
-rw-r--r--. 1 root root 53410 Mar 3 04:26 pgpool.conf.sample
-rw-r--r--. 1 root root 1183 Mar 3 04:26
pgpool_remote_start.sample
-rw-r--r--. 1 root root 3476 Mar 3 04:26 pool_hba.conf.sample
-rw-r--r--. 1 root root 3187 Mar 3 04:26 recovery_1st_stage.sample
-rw-r--r--. 1 root root 3647 Mar 3 04:26
replication_mode_recovery_1st_stage.sample
-rw-r--r--. 1 root root 1851 Mar 3 04:26
replication_mode_recovery_2nd_stage.sample
here are my non default pgpool.conf settings:
backend_clustering_mode = 'streaming_replication'
listen_addresses = '*'
port = 5432
unix_socket_directories = '/run/pgpool-II'
pcp_listen_addresses = '*'
pcp_socket_dir = '/run/pcp'
backend_hostname0 = '192.168.122.6'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/var/lib/pgsql/14/data'
backend_flag0 = 'DISALLOW_TO_FAILOVER'
backend_application_name0 = 'db2'
backend_hostname1 = '192.168.122.81'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/var/lib/pgsql/14/data'
backend_flag1 = 'DISALLOW_TO_FAILOVER'
backend_application_name1 = 'db3'
backend_hostname2 = '192.168.122.217'
backend_port2 = 5432
backend_weight2 = 1
backend_data_directory2 = '/var/lib/pgsql/14/data'
backend_flag2 = 'DISALLOW_TO_FAILOVER'
backend_application_name2 = 'db4'
enable_pool_hba = off
pool_passwd = ''
allow_clear_text_frontend_auth = on
num_init_children = 64
max_pool = 15
log_destination = 'stderr'
log_line_prefix = '%m: %a pid %p: '
log_connections = off
log_disconnections = off
#log_pcp_processes = on
log_hostname = off
log_statement = off
logging_collector = on
log_directory = '/var/lib/pgsql/pgpool/log'
log_filename = 'pgpool-%d.log'
log_truncate_on_rotation = on
log_rotation_size = 0
pid_file_name = '/var/lib/pgsql/pgpool/pid/pgpool.pid'
logdir = '/var/lib/pgsql/pgpool/log'
load_balance_mode = on
ignore_leading_white_space = on
statement_level_load_balance = on
sr_check_period = 10
sr_check_user = 'postgres'
sr_check_database = 'postgres'
health_check_period = 5
health_check_timeout = 20
health_check_user = 'postgres'
health_check_password = ''
failover_command = '/var/lib/pgsql/pgpool/bin/failover.sh %h %H %N >
/var/lib/pgsql/pgpool/log/failover.log 2>&1'
failover_on_backend_shutdown = on
Thanks in advance
More information about the pgpool-general
mailing list