aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2017-01-14 17:14:56 +0100
committerMagnus Hagander <magnus@hagander.net>2017-01-14 17:14:56 +0100
commitf6d6d2920d2cddc4b381cbbf2915db9d985d20a9 (patch)
treee4b2a4257a26062513d1239e705d1d45c62b1ff9
parent05cd12ed5bc74c853a161c5a138a0cb6f9b0cb8a (diff)
downloadpostgresql-f6d6d2920d2cddc4b381cbbf2915db9d985d20a9.tar.gz
postgresql-f6d6d2920d2cddc4b381cbbf2915db9d985d20a9.zip
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.
-rw-r--r--doc/src/sgml/backup.sgml3
-rw-r--r--doc/src/sgml/config.sgml16
-rw-r--r--src/backend/utils/misc/guc.c6
-rw-r--r--src/backend/utils/misc/postgresql.conf.sample6
-rw-r--r--src/test/modules/commit_ts/t/002_standby.pl1
-rw-r--r--src/test/modules/commit_ts/t/003_standby_2.pl1
-rw-r--r--src/test/perl/PostgresNode.pm6
-rw-r--r--src/test/recovery/t/006_logical_decoding.pl1
-rw-r--r--src/test/recovery/t/008_fsm_truncation.pl1
9 files changed, 21 insertions, 20 deletions
diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 6eaed1efbe9..d7df91090db 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -1420,7 +1420,8 @@ restore_command = 'cp /mnt/server/archivedir/%f %p'
<para>
If more flexibility in copying the backup files is needed, a lower
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>on</>, and set up an <varname>archive_command</> that performs
archiving only when a <emphasis>switch file</> exists. For example:
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 30dd54cd5d4..07afa3c77a7 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -2183,12 +2183,12 @@ include_dir 'conf.d'
</term>
<listitem>
<para>
- <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>replica</> adds logging required for WAL
- archiving as well as information required to run
- read-only queries on a standby server. Finally,
+ <varname>wal_level</> determines how much information is written to
+ the WAL. The default value is <literal>replica</>, which writes enough
+ data to support WAL archiving and replication, including running
+ read-only queries on a standby server. <literal>minimal</> removes all
+ logging except the information required to recover from a crash or
+ immediate shutdown. 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.
@@ -2926,7 +2926,7 @@ include_dir 'conf.d'
Specifies the maximum number of concurrent connections from
standby servers or streaming base backup clients (i.e., the
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
of connections, so the parameter cannot be set higher than
<xref linkend="guc-max-connections">. Abrupt streaming client
@@ -2951,7 +2951,7 @@ include_dir 'conf.d'
<para>
Specifies the maximum number of replication slots
(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.
<varname>wal_level</varname> must be set
to <literal>replica</literal> or higher to allow replication slots to
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 5b23dbf4a0e..4e2bd4c496a 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2315,7 +2315,7 @@ static struct config_int ConfigureNamesInt[] =
NULL
},
&max_wal_senders,
- 0, 0, MAX_BACKENDS,
+ 10, 0, MAX_BACKENDS,
NULL, NULL, NULL
},
@@ -2326,7 +2326,7 @@ static struct config_int ConfigureNamesInt[] =
NULL
},
&max_replication_slots,
- 0, 0, MAX_BACKENDS /* XXX? */ ,
+ 10, 0, MAX_BACKENDS /* XXX? */ ,
NULL, NULL, NULL
},
@@ -3749,7 +3749,7 @@ static struct config_enum ConfigureNamesEnum[] =
NULL
},
&wal_level,
- WAL_LEVEL_MINIMAL, wal_level_options,
+ WAL_LEVEL_REPLICA, wal_level_options,
NULL, NULL, NULL
},
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index b3f29610d07..15669b83c7f 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -174,7 +174,7 @@
# - Settings -
-#wal_level = minimal # minimal, replica, or logical
+#wal_level = replica # minimal, replica, or logical
# (change requires restart)
#fsync = on # flush data to disk for crash safety
# (turning this off can cause
@@ -229,12 +229,12 @@
# 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)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 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)
#track_commit_timestamp = off # collect timestamp of transaction commit
# (change requires restart)
diff --git a/src/test/modules/commit_ts/t/002_standby.pl b/src/test/modules/commit_ts/t/002_standby.pl
index 4dbde2978e4..ff600445406 100644
--- a/src/test/modules/commit_ts/t/002_standby.pl
+++ b/src/test/modules/commit_ts/t/002_standby.pl
@@ -15,7 +15,6 @@ $master->append_conf(
'postgresql.conf', qq{
track_commit_timestamp = on
max_wal_senders = 5
- wal_level = hot_standby
});
$master->start;
$master->backup($bkplabel);
diff --git a/src/test/modules/commit_ts/t/003_standby_2.pl b/src/test/modules/commit_ts/t/003_standby_2.pl
index 043ccb14a5d..1775b22dadf 100644
--- a/src/test/modules/commit_ts/t/003_standby_2.pl
+++ b/src/test/modules/commit_ts/t/003_standby_2.pl
@@ -14,7 +14,6 @@ $master->append_conf(
'postgresql.conf', qq{
track_commit_timestamp = on
max_wal_senders = 5
- wal_level = hot_standby
});
$master->start;
$master->backup($bkplabel);
diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index d8be1bd3e12..932478183a8 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -415,7 +415,6 @@ sub init
if ($params{allows_streaming})
{
- print $conf "wal_level = replica\n";
print $conf "max_wal_senders = 5\n";
print $conf "wal_keep_segments = 20\n";
print $conf "max_wal_size = 128MB\n";
@@ -424,6 +423,11 @@ sub init
print $conf "hot_standby = on\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)
{
diff --git a/src/test/recovery/t/006_logical_decoding.pl b/src/test/recovery/t/006_logical_decoding.pl
index b80a9a9415a..1716360a170 100644
--- a/src/test/recovery/t/006_logical_decoding.pl
+++ b/src/test/recovery/t/006_logical_decoding.pl
@@ -10,7 +10,6 @@ my $node_master = get_new_node('master');
$node_master->init(allows_streaming => 1);
$node_master->append_conf(
'postgresql.conf', qq(
-max_replication_slots = 4
wal_level = logical
));
$node_master->start;
diff --git a/src/test/recovery/t/008_fsm_truncation.pl b/src/test/recovery/t/008_fsm_truncation.pl
index 9f6bdb0b64b..5220611e445 100644
--- a/src/test/recovery/t/008_fsm_truncation.pl
+++ b/src/test/recovery/t/008_fsm_truncation.pl
@@ -14,7 +14,6 @@ $node_master->init(allows_streaming => 1);
$node_master->append_conf('postgresql.conf', qq{
fsync = on
-wal_level = replica
wal_log_hints = on
max_prepared_transactions = 5
autovacuum = off