Обсуждение: pgsql: pg_resetxlog: add option to set oldest xid & use by pg_upgrade

Поиск
Список
Период
Сортировка

pgsql: pg_resetxlog: add option to set oldest xid & use by pg_upgrade

От
Bruce Momjian
Дата:
pg_resetxlog:  add option to set oldest xid & use by pg_upgrade

Add pg_resetxlog -u option to set the oldest xid in pg_control.
Previously -x set this value be -2 billion less than the -x value.
However, this causes the server to immediately scan all relation's
relfrozenxid so it can advance pg_control's oldest xid to be inside the
autovacuum_freeze_max_age range, which is inefficient and might disrupt
diagnostic recovery.  pg_upgrade will use this option to better create
the new cluster to match the old cluster.

Reported-by: Jason Harvey, Floris Van Nee

Discussion: https://postgr.es/m/20190615183759.GB239428@rfd.leadboat.com,
87da83168c644fd9aae38f546cc70295@opammb0562.comp.optiver.com

Author: Bertrand Drouvot

Backpatch-through: 9.6

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c4ba87f527f07945ef4ad2b1b45e0afe81124b55

Modified Files
--------------
doc/src/sgml/ref/pg_resetwal.sgml | 20 ++++++++++++
src/bin/pg_resetwal/pg_resetwal.c | 66 ++++++++++++++++++++++-----------------
src/bin/pg_upgrade/controldata.c  | 17 +++++++++-
src/bin/pg_upgrade/pg_upgrade.c   |  7 +++++
src/bin/pg_upgrade/pg_upgrade.h   |  1 +
5 files changed, 82 insertions(+), 29 deletions(-)