Thread: PostgreSQL extensions during switchover

PostgreSQL extensions during switchover

From
Marian Pompura
Date:
Dear all,

I have question regarding how extensions acting during switchover process.

We running PostgreSQL 11 HA primary/replication server that is configured with repmgr.
Everything works fine but I am interested in matter of how extensions works during failover/switchover.process.

Let's say:

postgresql.conf configuration file on primary server:

shared_preload_libraries = 'pg_stat_statements,xxxx'

*Contrib package is installed on primary and replication server too.

postgresql.conf configuratioj file on replication server

shared_preload_libraries = '' is empty on replication server. 

In case some scenario which will include switchover or failover to replication server.
How it will act ? Switchover will be successful but new primary node will fail at startup process because shared_preload_libraries is empty but extensions are created in database? Or it's better to pre-configure same extensions into shared_preload_libraries parameter on replication server?

Thank you in advance,
Marian Pompura










Re: PostgreSQL extensions during switchover

From
Julien Rouhaud
Date:
Hi,

On Mon, Feb 14, 2022 at 11:16:24AM +0100, Marian Pompura wrote:
> 
> Let's say:
> 
> postgresql.conf configuration file on primary server:
> 
> shared_preload_libraries = 'pg_stat_statements,xxxx'
> 
> *Contrib package is installed on primary and replication server too.
> 
> postgresql.conf configuratioj file on replication server
> 
> shared_preload_libraries = '' is empty on replication server.
> 
> In case some scenario which will include switchover or failover to
> replication server.
> How it will act ? Switchover will be successful but new primary node will
> fail at startup process because shared_preload_libraries is empty but
> extensions are created in database? Or it's better to pre-configure same
> extensions into shared_preload_libraries parameter on replication server?

Having some extension installed without the required shared_preload_libraries
setting won't prevent postgres from starting.  The only thing that won't work
is using at least part of what the extension created on the database.

So the question is whether you want to make sure you have the same feature
available after a switchover, and if you do then yes you should make sure that
you have a consistent configuration across all your nodes.