I encountered a situation where I needed to update some configuration settings for PostgresSQL. However, I was unsure whether it required a restart upon configuration change.
Restarting the service means downtime and it’s not feasible for the production system. That’s why it’s a crucial decision.
Upon research, I found a solution via the Postgres email list . Hence I am sharing it in this post.
Imaging we want to update
max_slot_wal_keep_size config parameter. Therefore, we will run the following query.
SELECT pending_restart , context , name, setting FROM pg_catalog.pg_settings WHERE name = 'max_slot_wal_keep_size';
Here is the outcome of the above query.
pending_restart will tell you whether you need to restart the service or not. According to this mailing list ,
when the context is postmaster, it requires a restart otherwise not.
You will immediately observe a change in the configuration when it does not require a restart as opposed to those that require a restart.
You can find a list of parameters that requires a restart using the following query.
SELECT pending_restart , context , name, setting FROM pg_catalog.pg_settings WHERE context = 'postmaster';
Thanks for reading.
Originally posted on medium