Commit f6d6d292 authored by Magnus Hagander's avatar Magnus Hagander

Change default values for backup and replication parameters

This changes the default values of the following parameters:

wal_level = replica
max_wal_senders = 10
max_replication_slots = 10

in order to make it possible to make a backup and set up simple
replication on the default settings, without requiring a system restart.

Discussion: https://postgr.es/m/CABUevEy4PR_EAvZEzsbF5s+V0eEvw7shJ2t-AUwbHOjT+yRb3A@mail.gmail.com

Reviewed by Peter Eisentraut. Benchmark help from Tomas Vondra.
parent 05cd12ed
...@@ -1420,7 +1420,8 @@ restore_command = 'cp /mnt/server/archivedir/%f %p' ...@@ -1420,7 +1420,8 @@ restore_command = 'cp /mnt/server/archivedir/%f %p'
<para> <para>
If more flexibility in copying the backup files is needed, a lower If more flexibility in copying the backup files is needed, a lower
level process can be used for standalone hot backups as well. level process can be used for standalone hot backups as well.
To prepare for low level standalone hot backups, set <varname>wal_level</> to To prepare for low level standalone hot backups, make sure
<varname>wal_level</> is set to
<literal>replica</> or higher, <varname>archive_mode</> to <literal>replica</> or higher, <varname>archive_mode</> to
<literal>on</>, and set up an <varname>archive_command</> that performs <literal>on</>, and set up an <varname>archive_command</> that performs
archiving only when a <emphasis>switch file</> exists. For example: archiving only when a <emphasis>switch file</> exists. For example:
......
...@@ -2183,12 +2183,12 @@ include_dir 'conf.d' ...@@ -2183,12 +2183,12 @@ include_dir 'conf.d'
</term> </term>
<listitem> <listitem>
<para> <para>
<varname>wal_level</> determines how much information is written <varname>wal_level</> determines how much information is written to
to the WAL. The default value is <literal>minimal</>, which writes the WAL. The default value is <literal>replica</>, which writes enough
only the information needed to recover from a crash or immediate data to support WAL archiving and replication, including running
shutdown. <literal>replica</> adds logging required for WAL read-only queries on a standby server. <literal>minimal</> removes all
archiving as well as information required to run logging except the information required to recover from a crash or
read-only queries on a standby server. Finally, immediate shutdown. Finally,
<literal>logical</> adds information necessary to support logical <literal>logical</> adds information necessary to support logical
decoding. Each level includes the information logged at all lower decoding. Each level includes the information logged at all lower
levels. This parameter can only be set at server start. levels. This parameter can only be set at server start.
...@@ -2926,7 +2926,7 @@ include_dir 'conf.d' ...@@ -2926,7 +2926,7 @@ include_dir 'conf.d'
Specifies the maximum number of concurrent connections from Specifies the maximum number of concurrent connections from
standby servers or streaming base backup clients (i.e., the standby servers or streaming base backup clients (i.e., the
maximum number of simultaneously running WAL sender maximum number of simultaneously running WAL sender
processes). The default is zero, meaning replication is processes). The default is 10. The value 0 means replication is
disabled. WAL sender processes count towards the total number disabled. WAL sender processes count towards the total number
of connections, so the parameter cannot be set higher than of connections, so the parameter cannot be set higher than
<xref linkend="guc-max-connections">. Abrupt streaming client <xref linkend="guc-max-connections">. Abrupt streaming client
...@@ -2951,7 +2951,7 @@ include_dir 'conf.d' ...@@ -2951,7 +2951,7 @@ include_dir 'conf.d'
<para> <para>
Specifies the maximum number of replication slots Specifies the maximum number of replication slots
(see <xref linkend="streaming-replication-slots">) that the server (see <xref linkend="streaming-replication-slots">) that the server
can support. The default is zero. This parameter can only be set at can support. The default is 10. This parameter can only be set at
server start. server start.
<varname>wal_level</varname> must be set <varname>wal_level</varname> must be set
to <literal>replica</literal> or higher to allow replication slots to to <literal>replica</literal> or higher to allow replication slots to
......
...@@ -2315,7 +2315,7 @@ static struct config_int ConfigureNamesInt[] = ...@@ -2315,7 +2315,7 @@ static struct config_int ConfigureNamesInt[] =
NULL NULL
}, },
&max_wal_senders, &max_wal_senders,
0, 0, MAX_BACKENDS, 10, 0, MAX_BACKENDS,
NULL, NULL, NULL NULL, NULL, NULL
}, },
...@@ -2326,7 +2326,7 @@ static struct config_int ConfigureNamesInt[] = ...@@ -2326,7 +2326,7 @@ static struct config_int ConfigureNamesInt[] =
NULL NULL
}, },
&max_replication_slots, &max_replication_slots,
0, 0, MAX_BACKENDS /* XXX? */ , 10, 0, MAX_BACKENDS /* XXX? */ ,
NULL, NULL, NULL NULL, NULL, NULL
}, },
...@@ -3749,7 +3749,7 @@ static struct config_enum ConfigureNamesEnum[] = ...@@ -3749,7 +3749,7 @@ static struct config_enum ConfigureNamesEnum[] =
NULL NULL
}, },
&wal_level, &wal_level,
WAL_LEVEL_MINIMAL, wal_level_options, WAL_LEVEL_REPLICA, wal_level_options,
NULL, NULL, NULL NULL, NULL, NULL
}, },
......
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
# - Settings - # - Settings -
#wal_level = minimal # minimal, replica, or logical #wal_level = replica # minimal, replica, or logical
# (change requires restart) # (change requires restart)
#fsync = on # flush data to disk for crash safety #fsync = on # flush data to disk for crash safety
# (turning this off can cause # (turning this off can cause
...@@ -229,12 +229,12 @@ ...@@ -229,12 +229,12 @@
# Set these on the master and on any standby that will send replication data. # Set these on the master and on any standby that will send replication data.
#max_wal_senders = 0 # max number of walsender processes #max_wal_senders = 10 # max number of walsender processes
# (change requires restart) # (change requires restart)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables #wal_sender_timeout = 60s # in milliseconds; 0 disables
#max_replication_slots = 0 # max number of replication slots #max_replication_slots = 10 # max number of replication slots
# (change requires restart) # (change requires restart)
#track_commit_timestamp = off # collect timestamp of transaction commit #track_commit_timestamp = off # collect timestamp of transaction commit
# (change requires restart) # (change requires restart)
......
...@@ -15,7 +15,6 @@ $master->append_conf( ...@@ -15,7 +15,6 @@ $master->append_conf(
'postgresql.conf', qq{ 'postgresql.conf', qq{
track_commit_timestamp = on track_commit_timestamp = on
max_wal_senders = 5 max_wal_senders = 5
wal_level = hot_standby
}); });
$master->start; $master->start;
$master->backup($bkplabel); $master->backup($bkplabel);
......
...@@ -14,7 +14,6 @@ $master->append_conf( ...@@ -14,7 +14,6 @@ $master->append_conf(
'postgresql.conf', qq{ 'postgresql.conf', qq{
track_commit_timestamp = on track_commit_timestamp = on
max_wal_senders = 5 max_wal_senders = 5
wal_level = hot_standby
}); });
$master->start; $master->start;
$master->backup($bkplabel); $master->backup($bkplabel);
......
...@@ -415,7 +415,6 @@ sub init ...@@ -415,7 +415,6 @@ sub init
if ($params{allows_streaming}) if ($params{allows_streaming})
{ {
print $conf "wal_level = replica\n";
print $conf "max_wal_senders = 5\n"; print $conf "max_wal_senders = 5\n";
print $conf "wal_keep_segments = 20\n"; print $conf "wal_keep_segments = 20\n";
print $conf "max_wal_size = 128MB\n"; print $conf "max_wal_size = 128MB\n";
...@@ -424,6 +423,11 @@ sub init ...@@ -424,6 +423,11 @@ sub init
print $conf "hot_standby = on\n"; print $conf "hot_standby = on\n";
print $conf "max_connections = 10\n"; print $conf "max_connections = 10\n";
} }
else
{
print $conf "wal_level = minimal\n";
print $conf "max_wal_senders = 0\n";
}
if ($TestLib::windows_os) if ($TestLib::windows_os)
{ {
......
...@@ -10,7 +10,6 @@ my $node_master = get_new_node('master'); ...@@ -10,7 +10,6 @@ my $node_master = get_new_node('master');
$node_master->init(allows_streaming => 1); $node_master->init(allows_streaming => 1);
$node_master->append_conf( $node_master->append_conf(
'postgresql.conf', qq( 'postgresql.conf', qq(
max_replication_slots = 4
wal_level = logical wal_level = logical
)); ));
$node_master->start; $node_master->start;
......
...@@ -14,7 +14,6 @@ $node_master->init(allows_streaming => 1); ...@@ -14,7 +14,6 @@ $node_master->init(allows_streaming => 1);
$node_master->append_conf('postgresql.conf', qq{ $node_master->append_conf('postgresql.conf', qq{
fsync = on fsync = on
wal_level = replica
wal_log_hints = on wal_log_hints = on
max_prepared_transactions = 5 max_prepared_transactions = 5
autovacuum = off autovacuum = off
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment