aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/config.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/config.sgml')
-rw-r--r--doc/src/sgml/config.sgml44
1 files changed, 26 insertions, 18 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index fee83c1496b..f33a16b7aad 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1648,10 +1648,12 @@ include 'filename'
<varname>wal_level</> determines how much information is written
to the WAL. The default value is <literal>minimal</>, which writes
only the information needed to recover from a crash or immediate
- shutdown. <literal>archive</> adds logging required for WAL archiving,
- and <literal>hot_standby</> further adds information required to run
- read-only queries on a standby server.
- This parameter can only be set at server start.
+ shutdown. <literal>archive</> adds logging required for WAL archiving;
+ <literal>hot_standby</> further adds information required to run
+ read-only queries on a standby server; and, finally
+ <literal>logical</> adds information necessary to support logical
+ decoding. Each level includes the information logged at all lower
+ levels. This parameter can only be set at server start.
</para>
<para>
In <literal>minimal</> level, WAL-logging of some bulk
@@ -1665,24 +1667,30 @@ include 'filename'
<member><command>COPY</> into tables that were created or truncated in the same
transaction</member>
</simplelist>
- But minimal WAL does not contain
- enough information to reconstruct the data from a base backup and the
- WAL logs, so either <literal>archive</> or <literal>hot_standby</>
- level must be used to enable
- WAL archiving (<xref linkend="guc-archive-mode">) and streaming
- replication.
+ But minimal WAL does not contain enough information to reconstruct the
+ data from a base backup and the WAL logs, so <literal>archive</> or
+ higher must be used to enable WAL archiving
+ (<xref linkend="guc-archive-mode">) and streaming replication.
</para>
<para>
In <literal>hot_standby</> level, the same information is logged as
with <literal>archive</>, plus information needed to reconstruct
the status of running transactions from the WAL. To enable read-only
queries on a standby server, <varname>wal_level</> must be set to
- <literal>hot_standby</> on the primary, and
+ <literal>hot_standby</> or higher on the primary, and
<xref linkend="guc-hot-standby"> must be enabled in the standby. It is
- thought that there is
- little measurable difference in performance between using
- <literal>hot_standby</> and <literal>archive</> levels, so feedback
- is welcome if any production impacts are noticeable.
+ thought that there is little measurable difference in performance
+ between using <literal>hot_standby</> and <literal>archive</> levels,
+ so feedback is welcome if any production impacts are noticeable.
+ </para>
+ <para>
+ In <literal>logical</> level, the same information is logged as
+ with <literal>hot_standby</>, plus information needed to allow
+ extracting logical changesets from the WAL. Using a level of
+ <literal>logical</> will increase the WAL volume, particularly if many
+ tables are configured for <literal>REPLICA IDENTITY FULL</literal> and
+ many <command>UPDATE</> and <command>DELETE</> statements are
+ executed.
</para>
</listitem>
</varlistentry>
@@ -2239,9 +2247,9 @@ include 'filename'
disabled. WAL sender processes count towards the total number
of connections, so the parameter cannot be set higher than
<xref linkend="guc-max-connections">. This parameter can only
- be set at server start. <varname>wal_level</> must be set
- to <literal>archive</> or <literal>hot_standby</> to allow
- connections from standby servers.
+ be set at server start. <varname>wal_level</> must be set to
+ <literal>archive</> or higher to allow connections from standby
+ servers.
</para>
</listitem>
</varlistentry>