mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
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
This commit is contained in:
@ -297,6 +297,26 @@ PostgreSQL documentation
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-u <replaceable class="parameter">xid</replaceable></option></term>
|
||||
<term><option>--oldest-transaction-id=<replaceable class="parameter">xid</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Manually set the oldest unfrozen transaction ID.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A safe value can be determined by looking for the numerically smallest
|
||||
file name in the directory <filename>pg_xact</filename> under the data directory
|
||||
and then multiplying by 1048576 (0x100000). Note that the file names are in
|
||||
hexadecimal. It is usually easiest to specify the option value in
|
||||
hexadecimal too. For example, if <filename>0007</filename> is the smallest entry
|
||||
in <filename>pg_xact</filename>, <literal>-u 0x700000</literal> will work (five
|
||||
trailing zeroes provide the proper multiplier).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-x <replaceable class="parameter">xid</replaceable></option></term>
|
||||
<term><option>--next-transaction-id=<replaceable class="parameter">xid</replaceable></option></term>
|
||||
|
Reference in New Issue
Block a user