1
1
# file: postgresql/defaults/main.yml
2
2
3
3
# Basic settings
4
- postgresql_version : 16
4
+ postgresql_version : 17
5
5
postgresql_version_terse : " {{ postgresql_version | replace('.', '') }}" # Short version of the postgresql_version, used in some path and filenames
6
6
postgresql_encoding : " UTF-8"
7
7
postgresql_data_checksums : false
@@ -48,6 +48,7 @@ postgresql_postgis_release_compatibility:
48
48
14 : " 3.2"
49
49
15 : " 3.2"
50
50
16 : " 3.4"
51
+ 17 : " 3.5"
51
52
52
53
postgresql_ext_postgis_version : " {{ postgresql_postgis_release_compatibility.get(postgresql_version) }}"
53
54
postgresql_ext_postgis_version_terse : " {{ postgresql_ext_postgis_version | replace('.','') }}"
@@ -153,7 +154,7 @@ postgresql_client_connection_check_interval: 0 # (>= 14)
153
154
postgresql_authentication_timeout : 60s # 1s-600s
154
155
postgresql_password_encryption : " {{ 'scram-sha-256' if postgresql_version is version_compare('14', '>=') else 'md5' }}" # (>=14.0 set to scram-sha-256 for best security)
155
156
posgresql_scram_iterations : 4096 # (>= 16)
156
- postgresql_db_user_namespace : off
157
+ postgresql_db_user_namespace : off # (<= 16)
157
158
158
159
# GSSAPI using Kerberos
159
160
postgresql_krb_server_keyfile : " {{ 'FILE:${sysconfdir}/krb5.keytab' if postgresql_version is version_compare('14', '>=') else '' }}"
@@ -213,15 +214,26 @@ postgresql_dynamic_shared_memory_type: "posix" # the default is the first optio
213
214
# mmap
214
215
# use none to disable dynamic shared memory
215
216
postgresql_min_dynamic_shared_memory : 0MB # (>= 14) (change requires restart)
216
- postgres_vacuum_buffer_usage_limit : 256kB # (>= 16) size of vacuum and analyze buffer access strategy ring;
217
+ postgresql_vacuum_buffer_usage_limit : " {{ ' 256kB' if postgresql_version is version_compare('16', '=') else '2MB' }} " # (>= 16) size of vacuum and analyze buffer access strategy ring;
217
218
# 0 to disable vacuum buffer access strategy;
218
219
# range 128kB to 16GB
219
220
221
+ # SLRU buffers (change requires restart)
222
+ postgresql_commit_timestamp_buffers : 0 # (>= 17) memory for pg_commit_ts
223
+ postgresql_multixact_offset_buffers : 16 # (>= 17) memory for pg_multixact/offsets
224
+ postgresql_multixact_member_buffers : 32 # (>= 17) memory for pg_multixact/members
225
+ postgresql_notify_buffers : 16 # (>= 17) memory for pg_notify
226
+ postgresql_serializable_buffers : 32 # (>= 17) memory for pg_serial
227
+ postgresql_subtransaction_buffers : 0 # (>= 17) memory for pg_subtrans (0 = auto)
228
+ postgresql_transaction_buffers : 0 # (>= 17) memory for pg_xact (0 = auto)
229
+
220
230
# - Disk -
221
231
222
232
# limits per-process temp file space in kB, or -1 for no limit (>= 9.2)
223
233
postgresql_temp_file_limit : -1
224
234
235
+ postgresql_max_notify_queue_pages : 1048576 # (>= 17)
236
+
225
237
# - Kernel Resources -
226
238
227
239
postgresql_max_files_per_process : 1000 # min 25, (>= 13) min 64
@@ -246,12 +258,13 @@ postgresql_bgwriter_flush_after: 512kB # measured in pages, 0 disables
246
258
postgresql_backend_flush_after : 0 # (>= 9.6) 0 disables, default is 0
247
259
postgresql_effective_io_concurrency : 1 # 1-1000; 0 disables prefetching
248
260
postgresql_maintenance_io_concurrency : 10 # (>= 13)
261
+ postgresql_io_combine_limit : 128kB # (>= 17) usually 1-32 blocks (depends on OS)
249
262
postgresql_max_worker_processes : 8 # (change requires restart)
250
263
postgresql_max_parallel_workers_per_gather : 2 # (>= 9.6) taken from max_worker_processes
251
264
postgresql_max_parallel_maintenance_workers : 2 # (>= 11) taken from max_parallel_workers
252
265
postgresql_max_parallel_workers : 8 # (>= 10)
253
266
postgresql_parallel_leader_participation : on # (>= 11)
254
- postgresql_old_snapshot_threshold : -1 # (>= 9.6) 1min-60d; -1 disables; 0 is immediate
267
+ postgresql_old_snapshot_threshold : -1 # (>= 9.6 and <= 16 ) 1min-60d; -1 disables; 0 is immediate
255
268
# (change requires restart)
256
269
257
270
# ------------------------------------------------------------------------------
@@ -321,6 +334,10 @@ postgresql_recovery_target_inclusive: "" # (>= 12)
321
334
postgresql_recovery_target_timeline : " latest" # (>= 12)
322
335
postgresql_recovery_target_action : " pause" # (>= 12)
323
336
337
+ # - WAL Summarization -
338
+ postgresql_summarize_wal : off # (>= 17) run WAL summarizer process?
339
+ postgresql_wal_summary_keep_time : 10d # (>= 17) when to remove old summary files, 0 = never
340
+
324
341
# ------------------------------------------------------------------------------
325
342
# REPLICATION
326
343
# ------------------------------------------------------------------------------
@@ -342,6 +359,7 @@ postgresql_track_commit_timestamp: off # (>= 9.5)
342
359
# standby servers that provide sync rep.
343
360
# number of sync standbys (>= 9.6) and comma-separated list of application_name from standby(s)
344
361
postgresql_synchronous_standby_names : [] # '*' means 'all'
362
+ postgresql_synchronized_standby_slots : " " # (>= 17) streaming replication standby server slot
345
363
postgresql_synchronous_standby_num_sync : " " # >= 9.6 (NOTE: If you use the ANY/ALL syntax in v10, then note the new variable below)
346
364
postgresql_synchronous_standby_choose_sync : " FIRST" # >= 10
347
365
# number of xacts by which cleanup is delayed
@@ -368,6 +386,7 @@ postgresql_wal_receiver_timeout: 60s
368
386
# time to wait before retrying to retrieve WAL after a failed attempt
369
387
postgresql_wal_retrieve_retry_interval : 5s # (>= 9.5)
370
388
postgresql_recovery_min_apply_delay : 0 # (>= 12)
389
+ postgresql_sync_replication_slots : off # (>= 17) enables slot synchronization on the physical standby from the primary
371
390
372
391
# - Subscribers - (>= 10)
373
392
# These settings are ignored on a publisher.
@@ -401,6 +420,7 @@ postgres_enable_presorted_aggregate: on # (>= 16)
401
420
postgresql_enable_seqscan : on
402
421
postgresql_enable_sort : on
403
422
postgresql_enable_tidscan : on
423
+ postgresql_enable_group_by_reordering : on
404
424
405
425
# - Planner Cost Constants -
406
426
postgresql_seq_page_cost : 1.0 # measured on an arbitrary scale
@@ -665,6 +685,7 @@ postgresql_default_transaction_deferrable: off
665
685
postgresql_session_replication_role : " origin"
666
686
667
687
postgresql_statement_timeout : 0 # in milliseconds, 0 is disabled
688
+ postgresql_transaction_timeout : 0 # (>= 17) in milliseconds, 0 is disabled
668
689
postgresql_lock_timeout : 0 # in milliseconds, 0 is disabled (>= 9.3)
669
690
postgresql_idle_in_transaction_session_timeout : 0 # in milliseconds, 0 is disabled (>= 9.6)
670
691
postgresql_idle_session_timeout : 0 # in milliseconds, 0 is disabled (>= 14)
@@ -680,6 +701,7 @@ postgresql_xmlbinary: "base64"
680
701
postgresql_xmloption : " content"
681
702
postgresql_gin_pending_list_limit : 4MB # (>= 9.5)
682
703
postgresql_createrole_self_grant : ' ' # (>= 16) 'set', 'inherit' or 'set, inherit'
704
+ postgresql_event_triggers : on # (>= 17)
683
705
684
706
# - Locale and Formatting -
685
707
@@ -768,6 +790,7 @@ postgresql_sql_inheritance: on # (<= 9.6)
768
790
# - Other Platforms and Clients -
769
791
770
792
postgresql_transform_null_equals : off
793
+ postgresql_allow_alter_system : on # (>= 17)
771
794
772
795
# ------------------------------------------------------------------------------
773
796
# ERROR HANDLING
0 commit comments