1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-14 18:42:34 +03:00

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.
This commit is contained in:
Magnus Hagander
2017-01-14 17:14:56 +01:00
parent 05cd12ed5b
commit f6d6d2920d
9 changed files with 21 additions and 20 deletions

View File

@ -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:

View File

@ -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'
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'
<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

View File

@ -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[] =
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[] =
NULL NULL
}, },
&wal_level, &wal_level,
WAL_LEVEL_MINIMAL, wal_level_options, WAL_LEVEL_REPLICA, wal_level_options,
NULL, NULL, NULL NULL, NULL, NULL
}, },

View File

@ -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 @@
# 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)

View File

@ -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);

View File

@ -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);

View File

@ -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
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)
{ {

View File

@ -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;

View File

@ -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