1- <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.288 2010/06/30 02 :43:10 momjian Exp $ -->
1+ <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.289 2010/07/03 20 :43:57 tgl Exp $ -->
22
33<chapter Id="runtime-config">
44 <title>Server Configuration</title>
@@ -1841,6 +1841,8 @@ SET ENABLE_SEQSCAN TO OFF;
18411841 <para>
18421842 These settings control the behavior of the built-in
18431843 <firstterm>streaming replication</> feature.
1844+ These parameters would be set on the primary server that is
1845+ to send replication data to one or more standby servers.
18441846 </para>
18451847
18461848 <variablelist>
@@ -1866,7 +1868,7 @@ SET ENABLE_SEQSCAN TO OFF;
18661868 </indexterm>
18671869 <listitem>
18681870 <para>
1869- Specifies the delay between activity rounds for the WAL sender.
1871+ Specifies the delay between activity rounds for WAL sender processes .
18701872 In each round the WAL sender sends any WAL accumulated since the last
18711873 round to the standby server. It then sleeps for
18721874 <varname>wal_sender_delay</> milliseconds, and repeats. The default
@@ -1887,34 +1889,42 @@ SET ENABLE_SEQSCAN TO OFF;
18871889 </indexterm>
18881890 <listitem>
18891891 <para>
1890- Specifies the number of past log file segments kept in the
1892+ Specifies the minimum number of past log file segments kept in the
18911893 <filename>pg_xlog</>
18921894 directory, in case a standby server needs to fetch them for streaming
18931895 replication. Each segment is normally 16 megabytes. If a standby
18941896 server connected to the primary falls behind by more than
18951897 <varname>wal_keep_segments</> segments, the primary might remove
18961898 a WAL segment still needed by the standby, in which case the
1897- replication connection will be terminated.
1899+ replication connection will be terminated. (However, the standby
1900+ server can recover by fetching the segment from archive, if WAL
1901+ archiving is in use.)
18981902 </para>
18991903
19001904 <para>
1901- This sets only the minimum number of segments retained for standby
1902- purposes ; the system might need to retain more segments for WAL
1903- archival or to recover from a checkpoint. If <varname>wal_keep_segments</>
1904- is zero (the default), the system doesn't keep any extra segments
1905- for standby purposes, and the number of old WAL segments available
1906- for standbys is determined based only on the location of the previous
1907- checkpoint and status of WAL archiving.
1908- This parameter can only be set in the <filename>postgresql.conf</>
1909- file or on the server command line.
1905+ This sets only the minimum number of segments retained in
1906+ <filename>pg_xlog</> ; the system might need to retain more segments
1907+ for WAL archival or to recover from a checkpoint. If
1908+ <varname>wal_keep_segments</> is zero (the default), the system
1909+ doesn't keep any extra segments for standby purposes, and the number
1910+ of old WAL segments available to standby servers is a function of
1911+ the location of the previous checkpoint and status of WAL
1912+ archiving. This parameter can only be set in the
1913+ <filename>postgresql.conf</> file or on the server command line.
19101914 </para>
19111915 </listitem>
19121916 </varlistentry>
19131917 </variablelist>
19141918 </sect2>
1919+
19151920 <sect2 id="runtime-config-standby">
19161921 <title>Standby Servers</title>
19171922
1923+ <para>
1924+ These settings control the behavior of a standby server that is
1925+ to receive replication data.
1926+ </para>
1927+
19181928 <variablelist>
19191929
19201930 <varlistentry id="guc-hot-standby" xreflabel="hot_standby">
@@ -1933,39 +1943,64 @@ SET ENABLE_SEQSCAN TO OFF;
19331943 </listitem>
19341944 </varlistentry>
19351945
1936- <varlistentry id="guc-max-standby-delay" xreflabel="max_standby_delay ">
1937- <term><varname>max_standby_delay </varname> (<type>integer</type>)</term>
1946+ <varlistentry id="guc-max-standby-archive- delay" xreflabel="max_standby_archive_delay ">
1947+ <term><varname>max_standby_archive_delay </varname> (<type>integer</type>)</term>
19381948 <indexterm>
1939- <primary><varname>max_standby_delay </> configuration parameter</primary>
1949+ <primary><varname>max_standby_archive_delay </> configuration parameter</primary>
19401950 </indexterm>
19411951 <listitem>
19421952 <para>
1943- When Hot Standby is active, this parameter specifies a wait policy
1944- for applying WAL entries that conflict with active queries.
1945- If a conflict should occur the server will delay up to this long
1946- before it cancels conflicting queries, as
1947- described in <xref linkend="hot-standby-conflict">.
1948- The default is 30 seconds (30 s). Units are milliseconds.
1949- A value of -1 causes the standby to wait forever for a conflicting
1950- query to complete.
1953+ When Hot Standby is active, this parameter determines how long the
1954+ standby server should wait before canceling standby queries that
1955+ conflict with about-to-be-applied WAL entries, as described in
1956+ <xref linkend="hot-standby-conflict">.
1957+ <varname>max_standby_archive_delay</> applies when WAL data is
1958+ being read from WAL archive (and is therefore not current).
1959+ The default is 30 seconds. Units are milliseconds if not specified.
1960+ A value of -1 allows the standby to wait forever for conflicting
1961+ queries to complete.
19511962 This parameter can only be set in the <filename>postgresql.conf</>
19521963 file or on the server command line.
19531964 </para>
19541965 <para>
1955- A high value makes query cancel less likely.
1956- Increasing this parameter or setting it to -1 might delay master server
1957- changes from appearing on the standby.
1958- </para>
1959- <para>
1960- While it is tempting to believe that <varname>max_standby_delay</>
1961- is the maximum length of time a query can run before
1962- cancellation is possible, this is not true. When a long-running
1963- query ends, there is a finite time required to apply backlogged
1964- WAL logs. If a second long-running query appears before the
1965- WAL has caught up, the snapshot taken by the second query will
1966- allow significantly less than <varname>max_standby_delay</> seconds
1967- before query cancellation is possible.
1968- </para>
1966+ Note that <varname>max_standby_archive_delay</> is not the same as the
1967+ maximum length of time a query can run before cancellation; rather it
1968+ is the maximum total time allowed to apply any one WAL segment's data.
1969+ Thus, if one query has resulted in significant delay earlier in the
1970+ WAL segment, subsequent conflicting queries will have much less grace
1971+ time.
1972+ </para>
1973+ </listitem>
1974+ </varlistentry>
1975+
1976+ <varlistentry id="guc-max-standby-streaming-delay" xreflabel="max_standby_streaming_delay">
1977+ <term><varname>max_standby_streaming_delay</varname> (<type>integer</type>)</term>
1978+ <indexterm>
1979+ <primary><varname>max_standby_streaming_delay</> configuration parameter</primary>
1980+ </indexterm>
1981+ <listitem>
1982+ <para>
1983+ When Hot Standby is active, this parameter determines how long the
1984+ standby server should wait before canceling standby queries that
1985+ conflict with about-to-be-applied WAL entries, as described in
1986+ <xref linkend="hot-standby-conflict">.
1987+ <varname>max_standby_streaming_delay</> applies when WAL data is
1988+ being received via streaming replication.
1989+ The default is 30 seconds. Units are milliseconds if not specified.
1990+ A value of -1 allows the standby to wait forever for conflicting
1991+ queries to complete.
1992+ This parameter can only be set in the <filename>postgresql.conf</>
1993+ file or on the server command line.
1994+ </para>
1995+ <para>
1996+ Note that <varname>max_standby_streaming_delay</> is not the same as
1997+ the maximum length of time a query can run before cancellation; rather
1998+ it is the maximum total time allowed to apply WAL data once it has
1999+ been received from the primary server. Thus, if one query has
2000+ resulted in significant delay, subsequent conflicting queries will
2001+ have much less grace time until the standby server has caught up
2002+ again.
2003+ </para>
19692004 </listitem>
19702005 </varlistentry>
19712006
0 commit comments