From: Tom Hughes Date: Sun, 8 Nov 2020 10:37:06 +0000 (+0000) Subject: Configure database for logical replication X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/f47bac0a1d5a605cf56ce608340871c4de7e3121?ds=sidebyside Configure database for logical replication --- diff --git a/cookbooks/postgresql/attributes/default.rb b/cookbooks/postgresql/attributes/default.rb index 21beec74e..2d9fc1079 100644 --- a/cookbooks/postgresql/attributes/default.rb +++ b/cookbooks/postgresql/attributes/default.rb @@ -21,6 +21,7 @@ default[:postgresql][:settings][:defaults][:min_wal_size] = "80MB" default[:postgresql][:settings][:defaults][:checkpoint_completion_target] = "0.5" default[:postgresql][:settings][:defaults][:archive_mode] = "off" default[:postgresql][:settings][:defaults][:max_wal_senders] = "0" +default[:postgresql][:settings][:defaults][:max_replication_slots] = "0" default[:postgresql][:settings][:defaults][:hot_standby] = "off" default[:postgresql][:settings][:defaults][:hot_standby_feedback] = "off" default[:postgresql][:settings][:defaults][:random_page_cost] = "4.0" diff --git a/cookbooks/postgresql/templates/default/postgresql.conf.erb b/cookbooks/postgresql/templates/default/postgresql.conf.erb index 6022ea6c5..3c84ec994 100644 --- a/cookbooks/postgresql/templates/default/postgresql.conf.erb +++ b/cookbooks/postgresql/templates/default/postgresql.conf.erb @@ -86,6 +86,7 @@ archive_command = '<%= @settings[:archive_command] || @defaults[:archive_command # - Sending Server(s) - max_wal_senders = <%= @settings[:max_wal_senders] || @defaults[:max_wal_senders] %> +max_replication_slots = <%= @settings[:max_replication_slots] || @defaults[:max_replication_slots] %> # - Standby Servers - diff --git a/roles/db-master.rb b/roles/db-master.rb index d65791e15..11080f5ee 100644 --- a/roles/db-master.rb +++ b/roles/db-master.rb @@ -5,10 +5,11 @@ default_attributes( :postgresql => { :settings => { :defaults => { - :wal_level => "hot_standby", + :wal_level => "logical", :archive_mode => "on", :archive_command => "/usr/local/bin/openstreetmap-wal-e --terse wal-push %p", :max_wal_senders => "3", + :max_replication_slots => "1", :late_authentication_rules => [ { :database => "replication", :user => "replication", :address => "10.0.48.49/32" }, { :database => "replication", :user => "replication", :address => "10.0.48.50/32" },