Обсуждение: BUG #16783: pg_rewind: option -c does not work when configuration files are outside data directory
BUG #16783: pg_rewind: option -c does not work when configuration files are outside data directory
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 16783 Logged by: Edwin Polkerman Email address: edwin.polkerman@splendiddata.com PostgreSQL version: 13.1 Operating system: Centos7/8, RHEL7/8, SUSE12/15 Description: To my opinion this report is more an improvement then a real bug. We use PostgreSQL in such way that the configuration files are outside the data directory. So for target location following applies: - data location : /var/postgres/13/data - config files location: /etc/postgres/13/data On the target location 'restore_command' is filled in postgresql.conf. Trying pg_rewind with following command: pg_rewind --target-pgdata=/var/postgres/13/data -P -R -c --source-server='host=<ip-address> port=5432 user=<user> password=<passwd> dbname=postgres' Following Fatal message is shown: pg_rewind: fatal: restore_command is not set in the target cluster pg_rewind looks at the postgresql.conf in /var/postgres/13/data in stead of the location where the configuration files reside (/etc/postgres/13/data). It would be nice to add an option to tell pg_rewind that configuration files are on a different location.
On Mon, Dec 21, 2020 at 03:14:14PM +0000, PG Bug reporting form wrote: > Following Fatal message is shown: > pg_rewind: fatal: restore_command is not set in the target cluster > > pg_rewind looks at the postgresql.conf in /var/postgres/13/data in stead of > the location where the configuration files reside (/etc/postgres/13/data). > It would be nice to add an option to tell pg_rewind that configuration files > are on a different location. pg_rewind uses the command "postgres -C restore_command -D DATA_FOLDER" to grab the configuration in this case (see getRestoreCommand() in pg_rewind.c), but here you have a service startup configuration where the logic makes use of -c config_file=/etc/postgres/13/data/postgresql.conf, right? Indeed, we would need an extra option to be able to support this case and pass down the configuration file path down to the postgres command used in pg_rewind. We could name this option for example --target-conf, that can only be used when --restore-target-wal is specified. Would you like to write a patch? -- Michael