I use postgrsql 9.1.1 and I want to change archive_timeout on a running server. My default archive_timeout is 1800s, and nightly I want to change to 3600s or more, but I get the following error message:
set archive_timeout='3600'; ERROR: parameter "archive_timeout" cannot be changed now
and
update pg_settings set setting='900' where name='archive_timeout'; ERROR: parameter "archive_timeout" cannot be changed now
I know is possible to change this parameter with pg_ctl reload, but I think if is possible without changing the conf file.
postgres=# select name,setting,context from pg_settings where name like '%archive%';
You have to edit the configuration file and then reload the Database server to affect these changes. You can't change the "archive_timeout" value without editing the PostgreSQL.conf file.
Below link describes,changing the postgresql.conf from a script: