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:
@ -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'
|
|||||||
</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
|
||||||
|
@ -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
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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(
|
|||||||
'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
|
|||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
|||||||
|
|
||||||
$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
|
||||||
|
Reference in New Issue
Block a user