diff options
author | Bruce Momjian <bruce@momjian.us> | 2020-06-15 20:59:40 -0400 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2020-06-15 20:59:40 -0400 |
commit | 8e933596c9e425ead61cb2800d7b889cdcf83b6a (patch) | |
tree | 3c7aedb78718726e4afd5618a0c65ecaf5c22387 /src | |
parent | eb1286413c0abfabf51788215186841f5dbb345b (diff) | |
download | postgresql-8e933596c9e425ead61cb2800d7b889cdcf83b6a.tar.gz postgresql-8e933596c9e425ead61cb2800d7b889cdcf83b6a.zip |
pg_upgrade: set vacuum_defer_cleanup_age to zero
Non-zero vacuum_defer_cleanup_age values cause pg_upgrade freezing of
the system catalogs to be incomplete, or do nothing. This will cause
the upgrade to fail in confusing ways.
Reported-by: Laurenz Albe
Discussion: https://postgr.es/m/7d6f6c22ba05ce0c526e9e8b7bfa8105e7da45e6.camel@cybertec.at
Backpatch-through: 9.5
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_upgrade/server.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bin/pg_upgrade/server.c b/src/bin/pg_upgrade/server.c index 0b5967c49b8..9f61d7bdf31 100644 --- a/src/bin/pg_upgrade/server.c +++ b/src/bin/pg_upgrade/server.c @@ -240,6 +240,9 @@ start_postmaster(ClusterInfo *cluster, bool report_and_exit_on_error) * we only modify the new cluster, so only use it there. If there is a * crash, the new cluster has to be recreated anyway. fsync=off is a big * win on ext4. + * + * Force vacuum_defer_cleanup_age to 0 on the new cluster, so that + * vacuumdb --freeze actually freezes the tuples. */ snprintf(cmd, sizeof(cmd), "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s %s%s\" start", @@ -248,7 +251,7 @@ start_postmaster(ClusterInfo *cluster, bool report_and_exit_on_error) BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" : " -c autovacuum=off -c autovacuum_freeze_max_age=2000000000", (cluster == &new_cluster) ? - " -c synchronous_commit=off -c fsync=off -c full_page_writes=off" : "", + " -c synchronous_commit=off -c fsync=off -c full_page_writes=off -c vacuum_defer_cleanup_age=0" : "", cluster->pgopts ? cluster->pgopts : "", socket_string); /* |