summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera2013-06-27 19:31:04 +0000
committerAlvaro Herrera2013-06-27 19:32:58 +0000
commit9db4ad44eb02326bbe8eeaf7d1dd452844764a20 (patch)
treec31441281eebb1ad48a6d4e5a90e01e790322d2c
parent863fad1bcc9de52381e117bfecc89dfb4a52f84a (diff)
Update pg_resetxlog's documentation on multixacts
I added some more functionality to it in 0ac5ad5134f27 but neglected to add it to the docs. Per Peter Eisentraut in message [email protected]
-rw-r--r--doc/src/sgml/ref/pg_resetxlog.sgml22
-rw-r--r--src/bin/pg_resetxlog/pg_resetxlog.c2
2 files changed, 14 insertions, 10 deletions
diff --git a/doc/src/sgml/ref/pg_resetxlog.sgml b/doc/src/sgml/ref/pg_resetxlog.sgml
index 90c772195cd..c680680fe78 100644
--- a/doc/src/sgml/ref/pg_resetxlog.sgml
+++ b/doc/src/sgml/ref/pg_resetxlog.sgml
@@ -27,7 +27,7 @@ PostgreSQL documentation
<arg choice="opt"><option>-o</option> <replaceable class="parameter">oid</replaceable></arg>
<arg choice="opt"><option>-x</option> <replaceable class="parameter">xid</replaceable></arg>
<arg choice="opt"><option>-e</option> <replaceable class="parameter">xid_epoch</replaceable></arg>
- <arg choice="opt"><option>-m</option> <replaceable class="parameter">mxid</replaceable></arg>
+ <arg choice="opt"><option>-m</option> <replaceable class="parameter">mxid</replaceable>,<replaceable class="parameter">mxid</replaceable></arg>
<arg choice="opt"><option>-O</option> <replaceable class="parameter">mxoff</replaceable></arg>
<arg choice="opt"><option>-l</option> <replaceable class="parameter">xlogfile</replaceable></arg>
<arg choice="plain"><replaceable>datadir</replaceable></arg>
@@ -81,7 +81,7 @@ PostgreSQL documentation
<option>-m</>, <option>-O</>,
and <option>-l</>
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
<command>pg_resetxlog</command> is unable to determine appropriate values
by reading <filename>pg_control</>. Safe values can be determined as
@@ -104,12 +104,16 @@ PostgreSQL documentation
<listitem>
<para>
- A safe value for the next multitransaction ID (<option>-m</>)
+ A safe value for the next multitransaction ID (first part of <option>-m</>)
can be determined by looking for the numerically largest
file name in the directory <filename>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
+ <option>-m</>)
+ 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.
</para>
</listitem>
@@ -118,9 +122,9 @@ PostgreSQL documentation
A safe value for the next multitransaction offset (<option>-O</>)
can be determined by looking for the numerically largest
file name in the directory <filename>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.
</para>
</listitem>
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c
index 82018e449f2..6d3e9f5439f 100644
--- a/src/bin/pg_resetxlog/pg_resetxlog.c
+++ b/src/bin/pg_resetxlog/pg_resetxlog.c
@@ -1036,7 +1036,7 @@ usage(void)
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"));