I have three servers. One is running pgpool, another two in master-slave mode streaming replication. When installing pgpool, I was suggested to install the pgpool_regclass
on my database servers as well. There's no problem installing it in the master node, but when I tried to do the same in the slave, I got error ERROR: cannot execute CREATE EXTENSION in a read-only transaction
.
I think it's because the slave is a hot standby, and SELECT pg_is_in_recovery();
returns true. So I wonder am I supposed to install pgpool_regclass
on the slave or not. It seems not, but pgpool doc says I should install it on every database pgpool is going to access.
I found the cause. Delete the recovery.conf
file in the slave database, and then run pgpool_regclass
. Otherwise, the slave is in recovery mode and cannot execute write commands.