diff --git a/doc/src/sgml/ref/pg_resetwal.sgml b/doc/src/sgml/ref/pg_resetwal.sgml
index fd539f5604..08cd3ce5fc 100644
--- a/doc/src/sgml/ref/pg_resetwal.sgml
+++ b/doc/src/sgml/ref/pg_resetwal.sgml
@@ -52,21 +52,33 @@ PostgreSQL documentation
- After running this command, it should be possible to start the server,
+ Some options, such as (see below), can also
+ be used to modify certain global settings of a database cluster without the
+ need to rerun initdb. This can be done safely on an
+ otherwise sound database cluster, if none of the dangerous modes mentioned
+ below are used.
+
+
+
+ If pg_resetwal is used on a data directory where the
+ server has been cleanly shut down and the control file is sound, then it
+ will have no effect on the contents of the database system, except that no
+ longer used WAL files are cleared away. Any other use is potentially
+ dangerous and must be done with great care. pg_resetwal
+ will require the (force) option to be specified before
+ working on a data directory in an unclean shutdown state or with a
+ corrupted control file.
+
+
+
+ After running this command on a data directory with corrupted WAL or a
+ corrupted control file, it should be possible to start the server,
but bear in mind that the database might contain inconsistent data due to
partially-committed transactions. You should immediately dump your data,
run initdb, and restore. After restore, check for
inconsistencies and repair as needed.
-
- This utility can only be run by the user who installed the server, because
- it requires read/write access to the data directory.
- For safety reasons, you must specify the data directory on the command line.
- pg_resetwal does not use the environment variable
- PGDATA.
-
-
If pg_resetwal complains that it cannot determine
valid data for pg_control, you can force it to proceed anyway
@@ -82,19 +94,41 @@ PostgreSQL documentation
execute any data-modifying operations in the database before you dump,
as any such action is likely to make the corruption worse.
+
+
+ This utility can only be run by the user who installed the server, because
+ it requires read/write access to the data directory.
+ Options
+
+ datadir
+
+
+
+
+ Specifies the location of the database directory.
+ For safety reasons, you must specify the data directory on the command
+ line. pg_resetwal does not use the environment
+ variable PGDATA.
+
+
+
+
- Force pg_resetwal to proceed even if it cannot determine
- valid data for pg_control, as explained above.
+ Force pg_resetwal to proceed even in situations where
+ it could be dangerous, as explained above. Specifically, this option is
+ required to proceed if the server had not been cleanly shut down or if
+ pg_resetwal cannot determine valid data for
+ pg_control.
@@ -284,6 +318,12 @@ PostgreSQL documentation
linkend="app-initdb"/> for more information.
+
+ This option can also be used to change the WAL segment size of an
+ existing database cluster, avoiding the need to
+ re-initdb.
+
+
While pg_resetwal will set the WAL starting address
diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c
index 35876e1c95..47e05bd2c9 100644
--- a/src/bin/pg_resetwal/pg_resetwal.c
+++ b/src/bin/pg_resetwal/pg_resetwal.c
@@ -1135,7 +1135,8 @@ usage(void)
printf(_("\nOptions:\n"));
printf(_(" [-D, --pgdata=]DATADIR data directory\n"));
- printf(_(" -f, --force force update to be done\n"));
+ printf(_(" -f, --force force update to be done even after unclean shutdown or\n"
+ " if pg_control values had to be guessed\n"));
printf(_(" -n, --dry-run no update, just show what would be done\n"));
printf(_(" -V, --version output version information, then exit\n"));
printf(_(" -?, --help show this help, then exit\n"));