Improve pg_upgrade commentary on multixact change
Per gripe from Andres Freund
This commit is contained in:
parent
63d283ecd0
commit
cd7d00ad65
@ -470,7 +470,8 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
||||
/* verify that we got all the mandatory pg_control data */
|
||||
if (!got_xid || !got_oid ||
|
||||
!got_multi || !got_mxoff ||
|
||||
(!got_oldestmulti && cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER) ||
|
||||
(!got_oldestmulti &&
|
||||
cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER) ||
|
||||
(!live_check && !got_nextxlogfile) ||
|
||||
!got_tli ||
|
||||
!got_align || !got_blocksz || !got_largesz || !got_walsz ||
|
||||
@ -493,7 +494,8 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
||||
if (!got_mxoff)
|
||||
pg_log(PG_REPORT, " latest checkpoint next MultiXactOffset\n");
|
||||
|
||||
if (!got_oldestmulti && cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER)
|
||||
if (!got_oldestmulti &&
|
||||
cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER)
|
||||
pg_log(PG_REPORT, " latest checkpoint oldest MultiXactId\n");
|
||||
|
||||
if (!live_check && !got_nextxlogfile)
|
||||
|
@ -407,11 +407,10 @@ copy_clog_xlog_xid(void)
|
||||
check_ok();
|
||||
|
||||
/*
|
||||
* If both new and old are after the pg_multixact change commit, copy those
|
||||
* files too. If the old server is before that change and the new server
|
||||
* is after, then we don't copy anything but we need to reset pg_control so
|
||||
* that the new server doesn't attempt to read multis older than the cutoff
|
||||
* value.
|
||||
* If the old server is before the MULTIXACT_FORMATCHANGE_CAT_VER change
|
||||
* (see pg_upgrade.h) and the new server is after, then we don't copy
|
||||
* pg_multixact files, but we need to reset pg_control so that the new
|
||||
* server doesn't attempt to read multis older than the cutoff value.
|
||||
*/
|
||||
if (old_cluster.controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER &&
|
||||
new_cluster.controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER)
|
||||
|
@ -109,7 +109,10 @@ extern char *output_files[];
|
||||
#define VISIBILITY_MAP_CRASHSAFE_CAT_VER 201107031
|
||||
|
||||
/*
|
||||
* pg_multixact format changed in this catversion:
|
||||
* pg_multixact format changed in 9.3 commit 0ac5ad5134f2769ccbaefec73844f85,
|
||||
* ("Improve concurrency of foreign key locking") which also updated catalog
|
||||
* version to this value. pg_upgrade behavior depends on whether old and new
|
||||
* server versions are both newer than this, or only the new one is.
|
||||
*/
|
||||
#define MULTIXACT_FORMATCHANGE_CAT_VER 201301231
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user