]> git.openstreetmap.org Git - chef.git/commitdiff
Configure database for logical replication
authorTom Hughes <tom@compton.nu>
Sun, 8 Nov 2020 10:37:06 +0000 (10:37 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 8 Nov 2020 10:37:06 +0000 (10:37 +0000)
cookbooks/postgresql/attributes/default.rb
cookbooks/postgresql/templates/default/postgresql.conf.erb
roles/db-master.rb

index 21beec74eb1e1b4a63a7bae1e9c7cf91a6435a79..2d9fc10797f1a9e1e5c23dd1ebc27a60379a52cb 100644 (file)
@@ -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"
index 6022ea6c5801ae2a57efa69522e6435fa31ea2f3..3c84ec994081343b1085d421228ce726e4bf5ae2 100644 (file)
@@ -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 -
 
index d65791e155adc306799876fca5eda33341844071..11080f5ee98672a6d1c98254c6907bb0fcafb819 100644 (file)
@@ -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" },