diff options
author | Michael Paquier <michael@paquier.xyz> | 2022-04-07 08:51:49 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2022-04-07 08:51:49 +0900 |
commit | 0d5c387573be5c40bf18b7b8983f406637dff42f (patch) | |
tree | 24431b581f69f74322dfdd23affc16671221275e /src/bin/pg_rewind/t/RewindTest.pm | |
parent | a82a5eee314df52f3183cedc0ecbcac7369243b1 (diff) |
Add option --config-file to pg_rewind
This option is useful to do a rewind with the server configuration file
(aka postgresql.conf) located outside the data directory, which is
something that some Linux distributions and some HA tools like to rely
on. As a result, this can simplify the logic around a rewind by
avoiding the copy of such files before running pg_rewind.
This option affects pg_rewind when it internally starts the target
cluster with some "postgres" commands, adding -c config_file=FILE to the
command strings generated, when:
- retrieving a restore_command using a "postgres -C" command for
-c/--restore-target-wal.
- forcing crash recovery once to get the cluster into a clean shutdown
state.
Author: Gunnar "Nick" Bluth
Reviewed-by: Michael Banck, Alexander Kukushkin, Michael Paquier,
Alexander Alekseev
Discussion: https://postgr.es/m/7c59265d-ac50-b0aa-ca1e-65e8bd27642a@pro-open.de
Diffstat (limited to 'src/bin/pg_rewind/t/RewindTest.pm')
-rw-r--r-- | src/bin/pg_rewind/t/RewindTest.pm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/bin/pg_rewind/t/RewindTest.pm b/src/bin/pg_rewind/t/RewindTest.pm index 1e34768e270..8fd1f4b9de4 100644 --- a/src/bin/pg_rewind/t/RewindTest.pm +++ b/src/bin/pg_rewind/t/RewindTest.pm @@ -263,7 +263,9 @@ sub run_pg_rewind "--debug", "--source-pgdata=$standby_pgdata", "--target-pgdata=$primary_pgdata", - "--no-sync" + "--no-sync", + "--config-file", + "$tmp_folder/primary-postgresql.conf.tmp" ], 'pg_rewind local'); } @@ -276,7 +278,8 @@ sub run_pg_rewind 'pg_rewind', "--debug", "--source-server", $standby_connstr, "--target-pgdata=$primary_pgdata", "--no-sync", - "--write-recovery-conf" + "--write-recovery-conf", "--config-file", + "$tmp_folder/primary-postgresql.conf.tmp" ], 'pg_rewind remote'); @@ -323,7 +326,8 @@ sub run_pg_rewind # Note the use of --no-ensure-shutdown here. WAL files are # gone in this mode and the primary has been stopped - # gracefully already. + # gracefully already. --config-file reuses the original + # postgresql.conf as restore_command has been enabled above. command_ok( [ 'pg_rewind', @@ -332,7 +336,9 @@ sub run_pg_rewind "--target-pgdata=$primary_pgdata", "--no-sync", "--no-ensure-shutdown", - "--restore-target-wal" + "--restore-target-wal", + "--config-file", + "$primary_pgdata/postgresql.conf" ], 'pg_rewind archive'); } |