summaryrefslogtreecommitdiff
path: root/src/bin/pg_rewind/t/RewindTest.pm
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-04-07 08:51:49 +0900
committerMichael Paquier <michael@paquier.xyz>2022-04-07 08:51:49 +0900
commit0d5c387573be5c40bf18b7b8983f406637dff42f (patch)
tree24431b581f69f74322dfdd23affc16671221275e /src/bin/pg_rewind/t/RewindTest.pm
parenta82a5eee314df52f3183cedc0ecbcac7369243b1 (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.pm14
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');
}