aboutsummaryrefslogtreecommitdiff
path: root/contrib/pg_upgrade/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pg_upgrade/server.c')
-rw-r--r--contrib/pg_upgrade/server.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/contrib/pg_upgrade/server.c b/contrib/pg_upgrade/server.c
index 5f4b5307cba..901aa21f2e9 100644
--- a/contrib/pg_upgrade/server.c
+++ b/contrib/pg_upgrade/server.c
@@ -203,10 +203,11 @@ start_postmaster(ClusterInfo *cluster, bool throw_error)
/*
* Using autovacuum=off disables cleanup vacuum and analyze, but freeze
- * vacuums can still happen, so we set autovacuum_freeze_max_age to its
- * maximum. We assume all datfrozenxid and relfrozen values are less than
- * a gap of 2000000000 from the current xid counter, so autovacuum will
- * not touch them.
+ * vacuums can still happen, so we set autovacuum_freeze_max_age and
+ * autovacuum_multixact_freeze_max_age to their maximums. We assume all
+ * datfrozenxid, relfrozenxid, and relminmxid values are less than a gap
+ * of 2000000000 from the current xid counter, so autovacuum will not
+ * touch them.
*
* Turn off durability requirements to improve object creation speed, and
* we only modify the new cluster, so only use it there. If there is a
@@ -214,11 +215,13 @@ start_postmaster(ClusterInfo *cluster, bool throw_error)
* win on ext4.
*/
snprintf(cmd, sizeof(cmd),
- "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s %s%s\" start",
+ "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s %s%s%s\" start",
cluster->bindir, SERVER_LOG_FILE, cluster->pgconfig, cluster->port,
(cluster->controldata.cat_ver >=
BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" :
" -c autovacuum=off -c autovacuum_freeze_max_age=2000000000",
+ (GET_MAJOR_VERSION(cluster->major_version) >= 903) ?
+ " -c autovacuum_multixact_freeze_max_age=2000000000" : "",
(cluster == &new_cluster) ?
" -c synchronous_commit=off -c fsync=off -c full_page_writes=off" : "",
cluster->pgopts ? cluster->pgopts : "", socket_string);