]> granicus.if.org Git - postgresql/commitdiff
initdb: Further polishing of --wal-segsize option
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 25 Mar 2018 13:17:07 +0000 (09:17 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 25 Mar 2018 18:58:21 +0000 (14:58 -0400)
Extend documentation.  Improve option parsing in case no argument was
specified.

doc/src/sgml/ref/initdb.sgml
src/bin/initdb/initdb.c

index 585665f161135b8aeed603f3e1c92fb1beb8b050..949b5a220f588db74dd4cc836f610e234eb03a12 100644 (file)
@@ -316,16 +316,22 @@ PostgreSQL documentation
      </varlistentry>
 
      <varlistentry>
-       <term><option>--wal-segsize=<replaceable>SEGSIZE</replaceable></option></term>
+       <term><option>--wal-segsize=<replaceable>size</replaceable></option></term>
        <listitem>
         <para>
-         Set the <firstterm>WAL segment size</firstterm>, in megabytes.  This is
-         the size of each individual file in the WAL log.  It may be useful
-         to adjust this size to control the granularity of WAL log shipping.
-         This option can only be set during initialization, and cannot be
-         changed later.
-         The default size is 16 megabytes.
-         The value must be a power of 2 between 1 and 1024 (megabytes).
+         Set the <firstterm>WAL segment size</firstterm>, in megabytes.  This
+         is the size of each individual file in the WAL log.  The default size
+         is 16 megabytes.  The value must be a power of 2 between 1 and 1024
+         (megabytes).  This option can only be set during initialization, and
+         cannot be changed later.
+        </para>
+
+        <para>
+         It may be useful to adjust this size to control the granularity of
+         WAL log shipping or archiving.  Also, in databases with a high volume
+         of WAL, the sheer number of WAL files per directory can become a
+         performance and management problem.  Increasing the WAL file size
+         will reduce the number of WAL files.
         </para>
        </listitem>
       </varlistentry>
index 970463441c1295ffc99fe39277b872f56b953cf5..78990f5a2736749fd309cf45ae4e8e244b879976 100644 (file)
@@ -3224,7 +3224,7 @@ main(int argc, char *argv[])
                wal_segment_size_mb = strtol(str_wal_segment_size_mb, &endptr, 10);
 
                /* verify that wal segment size is valid */
-               if (*endptr != '\0')
+               if (endptr == str_wal_segment_size_mb || *endptr != '\0')
                {
                        fprintf(stderr,
                                        _("%s: argument of --wal-segsize must be a number\n"),
@@ -3234,7 +3234,7 @@ main(int argc, char *argv[])
                if (!IsValidWalSegSize(wal_segment_size_mb * 1024 * 1024))
                {
                        fprintf(stderr,
-                                       _("%s: argument of --wal-segsize must be a power of two between 1 and 1024\n"),
+                                       _("%s: argument of --wal-segsize must be a power of 2 between 1 and 1024\n"),
                                        progname);
                        exit(1);
                }