and
options allow the next OID, next transaction ID, next transaction ID's
- epoch, next multitransaction ID, next multitransaction offset, and WAL
+ epoch, next and oldest multitransaction ID, next multitransaction offset, and WAL
starting address values to be set manually. These are only needed when
pg_resetxlog is unable to determine appropriate values
by reading pg_control>. Safe values can be determined as
- A safe value for the next multitransaction ID (
+ A safe value for the next multitransaction ID (first part of
can be determined by looking for the numerically largest
file name in the directory pg_multixact/offsets> under the
- data directory, adding one, and then multiplying by 65536. As above,
- the file names are in hexadecimal, so the easiest way to do this is to
- specify the option value in hexadecimal and add four zeroes.
+ data directory, adding one, and then multiplying by 65536.
+ Conversely, a safe value for the oldest multitransaction ID (second part of
+
+ can be determined by looking for the numerically smallest
+ file name in the same directory and multiplying by 65536.
+ As above, the file names are in hexadecimal, so the easiest way to do
+ this is to specify the option value in hexadecimal and append four zeroes.
A safe value for the next multitransaction offset (
can be determined by looking for the numerically largest
file name in the directory pg_multixact/members> under the
- data directory, adding one, and then multiplying by 65536. As above,
- the file names are in hexadecimal, so the easiest way to do this is to
- specify the option value in hexadecimal and add four zeroes.
+ data directory, adding one, and then multiplying by 52352. As above,
+ the file names are in hexadecimal. There is no simple recipe such as
+ the ones above of appending zeroes.
printf(_(" -e XIDEPOCH set next transaction ID epoch\n"));
printf(_(" -f force update to be done\n"));
printf(_(" -l XLOGFILE force minimum WAL starting location for new transaction log\n"));
- printf(_(" -m XID,OLDEST set next multitransaction ID and oldest value\n"));
+ printf(_(" -m XID,XID set next and oldest multitransaction ID\n"));
printf(_(" -n no update, just show extracted control values (for testing)\n"));
printf(_(" -o OID set next OID\n"));
printf(_(" -O OFFSET set next multitransaction offset\n"));