mirror of
https://github.com/postgres/postgres.git
synced 2025-08-08 06:02:22 +03:00
pg_upgrade: start/stop new server after pg_resetwal
When commit 0f33a719fd
removed the
instructions to start/stop the new cluster before running rsync, it was
now possible for pg_resetwal/pg_resetxlog to leave the final WAL record
at wal_level=minimum, preventing upgraded standby servers from
reconnecting.
This patch fixes that by having pg_upgrade unconditionally start/stop
the new cluster after pg_resetwal/pg_resetxlog has run.
Backpatch through 9.2 since, though the instructions were added in PG
9.5, they worked all the way back to 9.2.
Discussion: https://postgr.es/m/20170620171844.GC24975@momjian.us
Backpatch-through: 9.2
This commit is contained in:
@@ -196,13 +196,19 @@ report_clusters_compatible(void)
|
||||
|
||||
|
||||
void
|
||||
issue_warnings(char *sequence_script_file_name)
|
||||
issue_warnings_and_set_wal_level(char *sequence_script_file_name)
|
||||
{
|
||||
/*
|
||||
* We unconditionally start/stop the new server because pg_resetwal -o
|
||||
* set wal_level to 'minimum'. If the user is upgrading standby
|
||||
* servers using the rsync instructions, they will need pg_upgrade
|
||||
* to write its final WAL record with the proper wal_level.
|
||||
*/
|
||||
start_postmaster(&new_cluster, true);
|
||||
|
||||
/* old = PG 8.3 warnings? */
|
||||
if (GET_MAJOR_VERSION(old_cluster.major_version) <= 803)
|
||||
{
|
||||
start_postmaster(&new_cluster, true);
|
||||
|
||||
/* restore proper sequence values using file created from old server */
|
||||
if (sequence_script_file_name)
|
||||
{
|
||||
@@ -218,16 +224,13 @@ issue_warnings(char *sequence_script_file_name)
|
||||
old_8_3_rebuild_tsvector_tables(&new_cluster, false);
|
||||
old_8_3_invalidate_hash_gin_indexes(&new_cluster, false);
|
||||
old_8_3_invalidate_bpchar_pattern_ops_indexes(&new_cluster, false);
|
||||
stop_postmaster(false);
|
||||
}
|
||||
|
||||
/* Create dummy large object permissions for old < PG 9.0? */
|
||||
if (GET_MAJOR_VERSION(old_cluster.major_version) <= 804)
|
||||
{
|
||||
start_postmaster(&new_cluster, true);
|
||||
new_9_0_populate_pg_largeobject_metadata(&new_cluster, false);
|
||||
stop_postmaster(false);
|
||||
}
|
||||
|
||||
stop_postmaster(false);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user