PostgreSQL Configuration Reference

Tune it with confidence

What each parameter does, its default, when a change takes effect, and how to tune it safely for production.

419 parameters

Archiving

Asynchronous I/O

Authentication

Autovacuum

Background Writer

Checkpoints

Client Connection Defaults

bytea_output — PostgreSQL configuration parameter

Sets the output format for values of type bytea. Valid values are hex (the default) and escape (the traditional PostgreSQL…

check_function_bodies — PostgreSQL configuration parameter

This parameter is normally on. When set to off, it disables validation of the routine body string during createfunction and…

client_min_messages — PostgreSQL configuration parameter

Controls which message levels are sent to the client. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING,…

default: NOTICE

createrole_self_grant — PostgreSQL configuration parameter

If a user who has CREATEROLE but not SUPERUSER creates a role, and if this is set to a non-empty…

default: an empty string, which disables the feature

default_table_access_method — PostgreSQL configuration parameter

This parameter specifies the default table access method to use when creating tables or materialized views if the CREATE command…

default: heap

default_tablespace — PostgreSQL configuration parameter

This variable specifies the default tablespace in which to create objects (tables and indexes) when a CREATE command does not…

default_text_search_config — PostgreSQL configuration parameter

Selects the text search configuration that is used by those variants of the text search functions that do not have…

default_toast_compression — PostgreSQL configuration parameter

This variable sets the default TOAST compression method for values of compressible columns. (This can be overridden for individual columns…

default: lz4 (if available

default_transaction_deferrable — PostgreSQL configuration parameter

When running at the serializable isolation level, a deferrable read-only SQL transaction may be delayed before it is allowed to…

default: off

dynamic_library_path — PostgreSQL configuration parameter

If a dynamically loadable module needs to be opened and the file name specified in the CREATE FUNCTION or LOAD…

event_triggers — PostgreSQL configuration parameter

Allow temporarily disabling execution of event triggers in order to troubleshoot and repair faulty event triggers. All event triggers will…

extension_control_path — PostgreSQL configuration parameter

A path to search for extensions, specifically extension control files (name.control). The remaining extension script and secondary control files are…

extra_float_digits — PostgreSQL configuration parameter

This parameter adjusts the number of digits used for textual output of floating-point values, including float4, float8, and geometric data…

gin_fuzzy_search_limit — PostgreSQL configuration parameter

Soft upper limit of the size of the set returned by GIN index scans. For more information see gin_tips.

gin_pending_list_limit — PostgreSQL configuration parameter

Sets the maximum size of a GIN index's pending list, which is used when fastupdate is enabled. If the list…

default: four megabytes (4MB

icu_validation_level — PostgreSQL configuration parameter

When ICU locale validation problems are encountered, controls which message level is used to report the problem. Valid values are…

default: WARNING

jit_provider — PostgreSQL configuration parameter

This variable is the name of the JIT provider library to be used (see jit_pluggable). The default is llvmjit. This…

default: llvmjit

lc_messages — PostgreSQL configuration parameter

Sets the language in which messages are displayed. Acceptable values are system-dependent; see locale for more information. If this variable…

lc_monetary — PostgreSQL configuration parameter

Sets the locale to use for formatting monetary amounts, for example with the to_char family of functions. Acceptable values are…

lc_numeric — PostgreSQL configuration parameter

Sets the locale to use for formatting numbers, for example with the to_char family of functions. Acceptable values are system-dependent;…

lc_time — PostgreSQL configuration parameter

Sets the locale to use for formatting dates and times, for example with the to_char family of functions. Acceptable values…

local_preload_libraries — PostgreSQL configuration parameter

This variable specifies one or more shared libraries that are to be preloaded at connection start. It contains a comma-separated…

restrict_nonsystem_relation_kind — PostgreSQL configuration parameter

Set relation kinds for which access to non-system relations is prohibited. The value takes the form of a comma-separated list…

row_security — PostgreSQL configuration parameter

This variable controls whether to raise an error in lieu of applying a row security policy. When set to on,…

default: on

session_preload_libraries — PostgreSQL configuration parameter

This variable specifies one or more shared libraries that are to be preloaded at connection start. It contains a comma-separated…

session_replication_role — PostgreSQL configuration parameter

Controls firing of replication-related triggers and rules for the current session. Possible values are origin (the default), replica and local.…

temp_tablespaces — PostgreSQL configuration parameter

This variable specifies tablespaces in which to create temporary objects (temp tables and indexes on temp tables) when a CREATE…

timezone_abbreviations — PostgreSQL configuration parameter

Sets the collection of additional time zone abbreviations that will be accepted by the server for datetime input (beyond any…

default: 'Default', which is a collection that works in most of the world

transaction_deferrable — PostgreSQL configuration parameter

This parameter reflects the current transaction's deferrability status. At the beginning of each transaction, it is set to the current…

transaction_isolation — PostgreSQL configuration parameter

This parameter reflects the current transaction's isolation level. At the beginning of each transaction, it is set to the current…

transaction_read_only — PostgreSQL configuration parameter

This parameter reflects the current transaction's read-only status. At the beginning of each transaction, it is set to the current…

transaction_timeout — PostgreSQL configuration parameter

Terminate any session that spans longer than the specified amount of time in a transaction. The limit applies both to…

xmlbinary — PostgreSQL configuration parameter

Sets how binary values are to be encoded in XML. This applies for example when bytea values are converted to…

default: base64

xmloption — PostgreSQL configuration parameter

Sets whether DOCUMENT or CONTENT is implicit when converting between XML and character string values. See datatype_xml for a description…

default: CONTENT

Client Defaults

Connections

Connections and Authentication

bonjour — PostgreSQL configuration parameter

Enables advertising the server's existence via Bonjour. The default is off. This parameter can only be set at server start.

default: off

bonjour_name — PostgreSQL configuration parameter

Specifies the Bonjour service name. The computer name is used if this parameter is set to the empty string ''…

client_connection_check_interval — PostgreSQL configuration parameter

Sets the time interval between optional checks that the client is still connected, while running queries. The check is performed…

gss_accept_delegation — PostgreSQL configuration parameter

Sets whether GSSAPI delegation should be accepted from the client. The default is off meaning credentials from the client will…

default: off meaning credentials from the client will not be accepted

krb_caseins_users — PostgreSQL configuration parameter

Sets whether GSSAPI user names should be treated case-insensitively. The default is off (case sensitive). This parameter can only be…

default: off (case sensitive

krb_server_keyfile — PostgreSQL configuration parameter

Sets the location of the server's Kerberos key file. The default is FILE:/usr/local/pgsql/etc/krb5.keytab (where the directory part is whatever was…

default: FILE:/usr/local/pgsql/etc/krb5

md5_password_warnings — PostgreSQL configuration parameter

Controls whether a WARNING about MD5 password deprecation is produced upon successful MD5 password authentication or when a CREATE ROLE…

default: on

oauth_validator_libraries — PostgreSQL configuration parameter

Sets the library/libraries to use for validating OAuth connection tokens. If only one validator library is provided, it will be…

password_expiration_warning_threshold — PostgreSQL configuration parameter

When this parameter is greater than zero, the server will emit a WARNING upon successful password authentication if less than…

default: 7 days

scram_iterations — PostgreSQL configuration parameter

The number of computational iterations to be performed when encrypting a password using SCRAM-SHA-256. The default is 4096. A higher…

default: 4096

ssl_ca_file — PostgreSQL configuration parameter

Specifies the name of the file containing the SSL server certificate authority (CA). Relative paths are relative to the data…

ssl_cert_file — PostgreSQL configuration parameter

Specifies the name of the file containing the SSL server certificate. Relative paths are relative to the data directory. This…

default: server

ssl_ciphers — PostgreSQL configuration parameter

Specifies a list of SSL ciphers that are allowed by connections using TLS version 1.2 and lower, see ssl_tls13_ciphers for…

default: HIGH:MEDIUM:+3DES:!aNULL

ssl_crl_dir — PostgreSQL configuration parameter

Specifies the name of the directory containing the SSL client certificate revocation list (CRL). Relative paths are relative to the…

default: empty, meaning no CRLs are used (unless ssl_crl_file is set

ssl_crl_file — PostgreSQL configuration parameter

Specifies the name of the file containing the SSL client certificate revocation list (CRL). Relative paths are relative to the…

default: empty, meaning no CRL file is loaded (unless ssl_crl_dir is set

ssl_dh_params_file — PostgreSQL configuration parameter

Specifies the name of the file containing Diffie-Hellman parameters used for so-called ephemeral DH family of SSL ciphers. The default…

default: empty, in which case compiled-in default DH parameters used

ssl_groups — PostgreSQL configuration parameter

Specifies the named group to use for TLS key exchange. It needs to be supported by all clients that connect.…

default: X25519:prime256v1

ssl_key_file — PostgreSQL configuration parameter

Specifies the name of the file containing the SSL server private key. Relative paths are relative to the data directory.…

default: server

ssl_max_protocol_version — PostgreSQL configuration parameter

Sets the maximum SSL/TLS protocol version to use. Valid values are as for ssl_min_protocol_version, with addition of an empty string,…

default: to allow any version

ssl_passphrase_command — PostgreSQL configuration parameter

Sets an external command to be invoked when a passphrase for decrypting an SSL file such as a private key…

ssl_passphrase_command_supports_reload — PostgreSQL configuration parameter

This parameter determines whether the passphrase command set by ssl_passphrase_command will also be called during a configuration reload if a…

ssl_prefer_server_ciphers — PostgreSQL configuration parameter

Specifies whether to use the server's SSL cipher preferences, rather than the client's. This parameter can only be set in…

default: on

ssl_sni — PostgreSQL configuration parameter

Enables SNI configuration for SSL connections. When set to on host configuration from hosts_file is used, see ssl_sni for more…

default: off

ssl_tls13_ciphers — PostgreSQL configuration parameter

Specifies a list of cipher suites that are allowed by connections using TLS version 1.3. Multiple cipher suites can be…

tcp_keepalives_count — PostgreSQL configuration parameter

Specifies the number of TCP keepalive messages that can be lost before the server's connection to the client is considered…

tcp_keepalives_interval — PostgreSQL configuration parameter

Specifies the amount of time after which a TCP keepalive message that has not been acknowledged by the client should…

tcp_user_timeout — PostgreSQL configuration parameter

Specifies the amount of time that transmitted data may remain unacknowledged before the TCP connection is forcibly closed. If this…

unix_socket_group — PostgreSQL configuration parameter

Sets the owning group of the Unix-domain socket(s). (The owning user of the sockets is always the user that starts…

unix_socket_permissions — PostgreSQL configuration parameter

Sets the access permissions of the Unix-domain socket(s). Unix-domain sockets use the usual Unix file system permission set. The parameter…

Developer Options

allow_in_place_tablespaces — PostgreSQL configuration parameter

Allows tablespaces to be created as directories inside pg_tblspc, when an empty location string is provided to the CREATE TABLESPACE…

allow_system_table_mods — PostgreSQL configuration parameter

Allows modification of the structure of system tables as well as certain other risky actions on system tables. This is…

backtrace_functions — PostgreSQL configuration parameter

This parameter contains a comma-separated list of C function names. If an error is raised and the name of the…

debug_copy_parse_plan_trees — PostgreSQL configuration parameter

Enabling this forces all parse and plan trees to be passed through copyObject(), to facilitate catching errors and omissions in…

default: off

debug_deadlocks — PostgreSQL configuration parameter

If set, dumps information about all current locks when a deadlock timeout occurs.

debug_discard_caches — PostgreSQL configuration parameter

When set to 1, each system catalog cache entry is invalidated at the first possible opportunity, whether or not anything…

debug_io_direct — PostgreSQL configuration parameter

Ask the kernel to minimize caching effects for relation data and WAL files using O_DIRECT (most Unix-like systems), F_NOCACHE (macOS)…

debug_logical_replication_streaming — PostgreSQL configuration parameter

The allowed values are buffered and immediate. The default is buffered. This parameter is intended to be used to test…

default: buffered

debug_parallel_query — PostgreSQL configuration parameter

Allows the use of parallel queries for testing purposes even in cases where no performance benefit is expected. The allowed…

debug_raw_expression_coverage_test — PostgreSQL configuration parameter

Enabling this forces all raw parse trees for DML statements to be scanned by raw_expression_tree_walker(), to facilitate catching errors and…

default: off

debug_write_read_parse_plan_trees — PostgreSQL configuration parameter

Enabling this forces all parse and plan trees to be passed through outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in…

default: off

ignore_checksum_failure — PostgreSQL configuration parameter

Only has effect if app_initdb_data_checksums are enabled.

ignore_invalid_pages — PostgreSQL configuration parameter

If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to…

ignore_system_indexes — PostgreSQL configuration parameter

Ignore system indexes when reading system tables (but still update the indexes when modifying the tables). This is useful when…

jit_debugging_support — PostgreSQL configuration parameter

If LLVM has the required functionality, register generated functions with GDB. This makes debugging easier. The default setting is off.…

jit_dump_bitcode — PostgreSQL configuration parameter

Writes the generated LLVM IR out to the file system, inside data_directory. This is only useful for working on the…

jit_expressions — PostgreSQL configuration parameter

Determines whether expressions are JIT compiled, when JIT compilation is activated (see jit_decision). The default is on.

default: on

jit_profiling_support — PostgreSQL configuration parameter

If LLVM has the required functionality, emit the data needed to allow perf to profile functions generated by JIT. This…

jit_tuple_deforming — PostgreSQL configuration parameter

Determines whether tuple deforming is JIT compiled, when JIT compilation is activated (see jit_decision). The default is on.

default: on

log_btree_build_stats — PostgreSQL configuration parameter

If set, logs system resource usage statistics (memory and CPU) on various B-tree operations.

post_auth_delay — PostgreSQL configuration parameter

The amount of time to delay when a new server process is started, after it conducts the authentication procedure. This…

pre_auth_delay — PostgreSQL configuration parameter

The amount of time to delay just after a new server process is forked, before it conducts the authentication procedure.…

remove_temp_files_after_crash — PostgreSQL configuration parameter

When set to on, which is the default, PostgreSQL will automatically remove temporary files after a backend crash. If disabled,…

send_abort_for_crash — PostgreSQL configuration parameter

By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits…

send_abort_for_kill — PostgreSQL configuration parameter

By default, after attempting to stop a child process with SIGQUIT, the postmaster will wait five seconds and then send…

trace_lock_oidmin — PostgreSQL configuration parameter

If set, do not trace locks for tables below this OID (used to avoid output on system tables).

trace_lock_table — PostgreSQL configuration parameter

Unconditionally trace locks on this table (OID).

trace_locks — PostgreSQL configuration parameter

If on, emit information about lock usage. Information dumped includes the type of lock operation, the type of lock and…

trace_lwlocks — PostgreSQL configuration parameter

If on, emit information about lightweight lock usage. Lightweight locks are intended primarily to provide mutual exclusion of access to…

trace_notify — PostgreSQL configuration parameter

Generates a great amount of debugging output for the LISTEN and NOTIFY commands. client_min_messages or log_min_messages must be DEBUG1 or…

trace_sort — PostgreSQL configuration parameter

If on, emit information about resource usage during sort operations.

trace_userlocks — PostgreSQL configuration parameter

If on, emit information about user lock usage. Output is the same as for trace_locks, only for advisory locks.

wal_consistency_checking — PostgreSQL configuration parameter

This parameter is intended to be used to check for bugs in the WAL redo routines. When enabled, full-page images…

wal_debug — PostgreSQL configuration parameter

If on, emit WAL-related debugging output. This parameter is only available if the WAL_DEBUG macro was defined when PostgreSQL was…

zero_damaged_pages — PostgreSQL configuration parameter

Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to…

Error Handling

Error Reporting and Logging

application_name — PostgreSQL configuration parameter

The application_name can be any string of less than NAMEDATALEN characters (64 characters in a standard build). It is typically…

cluster_name — PostgreSQL configuration parameter

Sets a name that identifies this database cluster (instance) for various purposes. The cluster name appears in the process title…

debug_pretty_print — PostgreSQL configuration parameter

When set, debug_pretty_print indents the messages produced by debug_print_raw_parse, debug_print_parse, debug_print_rewritten, or debug_print_plan. This results in more readable but much…

debug_print_raw_parse — PostgreSQL configuration parameter

These parameters enable various debugging output to be emitted. When set, they print the resulting raw parse tree, the parse…

event_source — PostgreSQL configuration parameter

When logging to event log is enabled, this parameter determines the program name used to identify PostgreSQL messages in the…

default: PostgreSQL

log_autoanalyze_min_duration — PostgreSQL configuration parameter

Causes analyze action executed by autovacuum to be logged if it ran for at least the specified amount of time.…

default: 10min

log_connections — PostgreSQL configuration parameter

Causes aspects of each connection to the server to be logged. The default is the empty string, '', which disables…

default: the empty string, '', which disables all connection logging

log_destination — PostgreSQL configuration parameter

PostgreSQL supports several methods for logging server messages, including stderr, csvlog, jsonlog, and syslog. On Windows, eventlog is also supported.…

default: to log to stderr only

log_directory — PostgreSQL configuration parameter

When logging_collector is enabled, this parameter determines the directory in which log files will be created. It can be specified…

default: log

log_disconnections — PostgreSQL configuration parameter

Causes session terminations to be logged. The log output provides information similar to log_connections, plus the duration of the session.…

default: off

log_duration — PostgreSQL configuration parameter

Causes the duration of every completed statement to be logged. The default is off. Only superusers and users with the…

default: off

log_error_verbosity — PostgreSQL configuration parameter

Controls the amount of detail written in the server log for each message that is logged. Valid values are TERSE,…

log_file_mode — PostgreSQL configuration parameter

On Unix systems this parameter sets the permissions for log files when logging_collector is enabled. (On Microsoft Windows this parameter…

log_filename — PostgreSQL configuration parameter

When logging_collector is enabled, this parameter sets the file names of the created log files. The value is treated as…

default: postgresql-%Y-%m-%d_%H%M%S

log_hostname — PostgreSQL configuration parameter

By default, connection log messages only show the IP address of the connecting host. Turning this parameter on causes logging…

log_lock_failures — PostgreSQL configuration parameter

Controls whether a detailed log message is produced when a lock acquisition fails. This is useful for analyzing the causes…

default: off

log_min_duration_sample — PostgreSQL configuration parameter

Allows sampling the duration of completed statements that ran for at least the specified amount of time. This produces the…

log_min_error_statement — PostgreSQL configuration parameter

Controls which SQL statements that cause an error condition are recorded in the server log. The current SQL statement is…

log_min_messages — PostgreSQL configuration parameter

Controls which message levels are written to the server log. The value is a comma-separated list of zero or more…

default: WARNING, which applies that level to all process types

log_parameter_max_length — PostgreSQL configuration parameter

If greater than zero, each bind parameter value logged with a non-error statement-logging message is trimmed to this many bytes.…

log_parameter_max_length_on_error — PostgreSQL configuration parameter

If greater than zero, each bind parameter value reported in error messages is trimmed to this many bytes. Zero (the…

log_recovery_conflict_waits — PostgreSQL configuration parameter

Controls whether a log message is produced when the startup process waits longer than deadlock_timeout for recovery conflicts. This is…

default: off

log_replication_commands — PostgreSQL configuration parameter

Causes each replication command and walsender process's replication slot acquisition/release to be logged in the server log. See protocol_replication for…

default: off

log_rotation_age — PostgreSQL configuration parameter

When logging_collector is enabled, this parameter determines the maximum amount of time to use an individual log file, after which…

default: 24 hours

log_rotation_size — PostgreSQL configuration parameter

When logging_collector is enabled, this parameter determines the maximum size of an individual log file. After this amount of data…

default: 10 megabytes

log_startup_progress_interval — PostgreSQL configuration parameter

Sets the amount of time after which the startup process will log a message about a long-running operation that is…

default: 10 seconds

log_statement_sample_rate — PostgreSQL configuration parameter

Determines the fraction of statements with duration exceeding log_min_duration_sample that will be logged. Sampling is stochastic, for example 0.5 means…

default: 1

log_timezone — PostgreSQL configuration parameter

Sets the time zone used for timestamps written in the server log. Unlike timezone, this value is cluster-wide, so that…

log_transaction_sample_rate — PostgreSQL configuration parameter

Sets the fraction of transactions whose statements are all logged, in addition to statements logged for other reasons. It applies…

default: 0, meaning not to log statements from any additional transactions

log_truncate_on_rotation — PostgreSQL configuration parameter

When logging_collector is enabled, this parameter will cause PostgreSQL to truncate (overwrite), rather than append to, any existing log file…

syslog_facility — PostgreSQL configuration parameter

When logging to syslog is enabled, this parameter determines the syslog “facility” to be used. You can choose from LOCAL0,…

default: LOCAL0

syslog_ident — PostgreSQL configuration parameter

When logging to syslog is enabled, this parameter determines the program name used to identify PostgreSQL messages in syslog logs.…

default: postgres

syslog_sequence_numbers — PostgreSQL configuration parameter

When logging to syslog and this is on (the default), then each message will be prefixed by an increasing sequence…

syslog_split_messages — PostgreSQL configuration parameter

When logging to syslog is enabled, this parameter determines how messages are delivered to syslog. When on (the default), messages…

update_process_title — PostgreSQL configuration parameter

Enables updating of the process title every time a new SQL command is received by the server. This setting defaults…

File Locations

Lock Management

Locks

Logging

Memory

Parallelism

Preset

Preset Options

block_size — PostgreSQL configuration parameter

Reports the size of a disk block. It is determined by the value of BLCKSZ when building the server. The…

default: 8192 bytes

data_checksums — PostgreSQL configuration parameter

Reports the state of data checksums for this cluster. Possible values are on, off, inprogress-on and inprogress-off. See checksums for…

data_directory_mode — PostgreSQL configuration parameter

On Unix systems this parameter reports the permissions the data directory (defined by data_directory) had at server startup. (On Microsoft…

debug_assertions — PostgreSQL configuration parameter

Reports whether PostgreSQL has been built with assertions enabled. That is the case if the macro USE_ASSERT_CHECKING is defined when…

debug_exec_backend — PostgreSQL configuration parameter

Reports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND…

effective_wal_level — PostgreSQL configuration parameter

Reports the actual WAL logging level currently in effect in the system. This parameter shares the same set of values…

huge_pages_status — PostgreSQL configuration parameter

Reports the state of huge pages in the current instance: on, off, or unknown (if displayed with postgres -C). This…

in_hot_standby — PostgreSQL configuration parameter

Reports whether the server is currently in hot standby mode. When this is on, all transactions are forced to be…

integer_datetimes — PostgreSQL configuration parameter

Reports whether PostgreSQL was built with support for 64-bit-integer dates and times. As of PostgreSQL 10, this is always on.

max_function_args — PostgreSQL configuration parameter

Reports the maximum number of function arguments. It is determined by the value of FUNC_MAX_ARGS when building the server. The…

default: 100 arguments

max_identifier_length — PostgreSQL configuration parameter

Reports the maximum identifier length. It is determined as one less than the value of NAMEDATALEN when building the server.…

max_index_keys — PostgreSQL configuration parameter

Reports the maximum number of index keys. It is determined by the value of INDEX_MAX_KEYS when building the server. The…

default: 32 keys

num_os_semaphores — PostgreSQL configuration parameter

Reports the number of semaphores that are needed for the server based on the configured number of allowed connections (max_connections),…

segment_size — PostgreSQL configuration parameter

Reports the number of blocks (pages) that can be stored within a file segment. It is determined by the value…

server_encoding — PostgreSQL configuration parameter

Reports the database encoding (character set). It is determined when the database is created. Ordinarily, clients need only be concerned…

server_version — PostgreSQL configuration parameter

Reports the version number of the server. It is determined by the value of PG_VERSION when building the server.

server_version_num — PostgreSQL configuration parameter

Reports the version number of the server as an integer. It is determined by the value of PG_VERSION_NUM when building…

shared_memory_size — PostgreSQL configuration parameter

Reports the size of the main shared memory area, rounded up to the nearest megabyte.

shared_memory_size_in_huge_pages — PostgreSQL configuration parameter

Reports the number of huge pages that are needed for the main shared memory area based on the specified huge_page_size.…

ssl_library — PostgreSQL configuration parameter

Reports the name of the SSL library that this PostgreSQL server was built with (even if SSL is not currently…

wal_block_size — PostgreSQL configuration parameter

Reports the size of a WAL disk block. It is determined by the value of XLOG_BLCKSZ when building the server.…

default: 8192 bytes

wal_segment_size — PostgreSQL configuration parameter

Reports the size of write ahead log segments. The default value is 16MB. See wal_configuration for more information.

default: 16MB

Query Planner

Query Planning

constraint_exclusion — PostgreSQL configuration parameter

Controls the query planner's use of table constraints to optimize queries. The allowed values of constraint_exclusion are on (examine constraints…

cpu_index_tuple_cost — PostgreSQL configuration parameter

Sets the planner's estimate of the cost of processing each index entry during an index scan. The default is 0.005.

default: 0

cpu_operator_cost — PostgreSQL configuration parameter

Sets the planner's estimate of the cost of processing each operator or function executed during a query. The default is…

default: 0

cpu_tuple_cost — PostgreSQL configuration parameter

Sets the planner's estimate of the cost of processing each row during a query. The default is 0.01.

default: 0

cursor_tuple_fraction — PostgreSQL configuration parameter

Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved. The default is 0.1. Smaller…

default: 0

enable_async_append — PostgreSQL configuration parameter

Enables or disables the query planner's use of async-aware append plan types. The default is on.

default: on

enable_bitmapscan — PostgreSQL configuration parameter

Enables or disables the query planner's use of bitmap-scan plan types. The default is on.

default: on

enable_distinct_reordering — PostgreSQL configuration parameter

Enables or disables the query planner's ability to reorder DISTINCT keys to match the input path's pathkeys. The default is…

default: on

enable_eager_aggregate — PostgreSQL configuration parameter

Enables or disables the query planner's ability to partially push aggregation past a join, and finalize it once all the…

default: on

enable_gathermerge — PostgreSQL configuration parameter

Enables or disables the query planner's use of gather merge plan types. The default is on.

default: on

enable_group_by_reordering — PostgreSQL configuration parameter

Controls if the query planner will produce a plan which will provide GROUP BY keys sorted in the order of…

default: on

enable_hashagg — PostgreSQL configuration parameter

Enables or disables the query planner's use of hashed aggregation plan types. The default is on.

default: on

enable_hashjoin — PostgreSQL configuration parameter

Enables or disables the query planner's use of hash-join plan types. The default is on.

default: on

enable_incremental_sort — PostgreSQL configuration parameter

Enables or disables the query planner's use of incremental sort steps. The default is on.

default: on

enable_indexonlyscan — PostgreSQL configuration parameter

Enables or disables the query planner's use of index-only-scan plan types (see indexes_index_only_scans). The default is on. The enable_indexscan setting…

default: on

enable_indexscan — PostgreSQL configuration parameter

Enables or disables the query planner's use of index-scan and index-only-scan plan types. The default is on. Also see enable_indexonlyscan.

default: on

enable_material — PostgreSQL configuration parameter

Enables or disables the query planner's use of materialization. It is impossible to suppress materialization entirely, but turning this variable…

default: on

enable_memoize — PostgreSQL configuration parameter

Enables or disables the query planner's use of memoize plans for caching results from parameterized scans inside nested-loop joins. This…

default: on

enable_mergejoin — PostgreSQL configuration parameter

Enables or disables the query planner's use of merge-join plan types. The default is on.

default: on

enable_nestloop — PostgreSQL configuration parameter

Enables or disables the query planner's use of nested-loop join plans. It is impossible to suppress nested-loop joins entirely, but…

default: on

enable_parallel_append — PostgreSQL configuration parameter

Enables or disables the query planner's use of parallel-aware append plan types. The default is on.

default: on

enable_parallel_hash — PostgreSQL configuration parameter

Enables or disables the query planner's use of hash-join plan types with parallel hash. Has no effect if hash-join plans…

default: on

enable_partition_pruning — PostgreSQL configuration parameter

Enables or disables the query planner's ability to eliminate a partitioned table's partitions from query plans. This also controls the…

default: on

enable_partitionwise_aggregate — PostgreSQL configuration parameter

Enables or disables the query planner's use of partitionwise grouping or aggregation, which allows grouping or aggregation on partitioned tables…

default: off

enable_partitionwise_join — PostgreSQL configuration parameter

Enables or disables the query planner's use of partitionwise join, which allows a join between partitioned tables to be performed…

default: off

enable_presorted_aggregate — PostgreSQL configuration parameter

Controls if the query planner will produce a plan which will provide rows which are presorted in the order required…

default: on

enable_self_join_elimination — PostgreSQL configuration parameter

Enables or disables the query planner's optimization which analyses the query tree and replaces self joins with semantically equivalent single…

default: on

enable_seqscan — PostgreSQL configuration parameter

Enables or disables the query planner's use of sequential scan plan types. It is impossible to suppress sequential scans entirely,…

default: on

enable_sort — PostgreSQL configuration parameter

Enables or disables the query planner's use of explicit sort steps. It is impossible to suppress explicit sorts entirely, but…

default: on

enable_tidscan — PostgreSQL configuration parameter

Enables or disables the query planner's use of TID scan plan types. The default is on.

default: on

from_collapse_limit — PostgreSQL configuration parameter

The planner will merge sub-queries into upper queries if the resulting FROM list would have no more than this many…

default: eight

geqo — PostgreSQL configuration parameter

Enables or disables genetic query optimization. This is on by default. It is usually best not to turn it off…

geqo_effort — PostgreSQL configuration parameter

Controls the trade-off between planning time and query plan quality in GEQO. This variable must be an integer in the…

default: five

geqo_generations — PostgreSQL configuration parameter

Controls the number of generations used by GEQO, that is the number of iterations of the algorithm. It must be…

geqo_pool_size — PostgreSQL configuration parameter

Controls the pool size used by GEQO, that is the number of individuals in the genetic population. It must be…

geqo_seed — PostgreSQL configuration parameter

Controls the initial value of the random number generator used by GEQO to select random paths through the join order…

geqo_selection_bias — PostgreSQL configuration parameter

Controls the selection bias used by GEQO. The selection bias is the selective pressure within the population. Values can be…

geqo_threshold — PostgreSQL configuration parameter

Use genetic query optimization to plan queries with at least this many FROM items involved. (Note that a FULL OUTER…

default: 12

jit_above_cost — PostgreSQL configuration parameter

Sets the query cost above which JIT compilation is activated, if enabled (see jit). Performing JIT costs planning time but…

default: 100000

jit_inline_above_cost — PostgreSQL configuration parameter

Sets the query cost above which JIT compilation attempts to inline functions and operators. Inlining adds planning time, but can…

default: 500000

jit_optimize_above_cost — PostgreSQL configuration parameter

Sets the query cost above which JIT compilation applies expensive optimizations. Such optimization adds planning time, but can improve execution…

default: 500000

min_eager_agg_group_size — PostgreSQL configuration parameter

Sets the minimum average group size required to consider applying eager aggregation. This helps avoid the overhead of eager aggregation…

default: 8

min_parallel_index_scan_size — PostgreSQL configuration parameter

Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered.…

default: 512 kilobytes (512kB

min_parallel_table_scan_size — PostgreSQL configuration parameter

Sets the minimum amount of table data that must be scanned in order for a parallel scan to be considered.…

default: 8 megabytes (8MB

parallel_setup_cost — PostgreSQL configuration parameter

Sets the planner's estimate of the cost of launching parallel worker processes. The default is 1000.

default: 1000

parallel_tuple_cost — PostgreSQL configuration parameter

Sets the planner's estimate of the cost of transferring one tuple from a parallel worker process to another process. The…

default: 0

plan_cache_mode — PostgreSQL configuration parameter

Prepared statements (either explicitly prepared or implicitly generated, for example by PL/pgSQL) can be executed using custom or generic plans.…

recursive_worktable_factor — PostgreSQL configuration parameter

Sets the planner's estimate of the average size of the working table of a recursive query, as a multiple of…

default: 10

Replication

hot_standby — PostgreSQL Configuration Parameter

Allow read-only queries on a standby during recovery.

default: on

hot_standby_feedback — PostgreSQL Configuration Parameter

Standby tells primary about its oldest snapshot to avoid query conflicts.

default: off

idle_replication_slot_timeout — PostgreSQL configuration parameter

Invalidate replication slots that have remained inactive (not used by a replication connection) for longer than this duration. If this…

max_active_replication_origins — PostgreSQL configuration parameter

Specifies how many replication origins (see replication_origins) can be tracked simultaneously, effectively limiting how many logical replication subscriptions can be…

default: 10

max_logical_replication_workers — PostgreSQL configuration parameter

Specifies maximum number of logical replication workers. This includes leader apply workers, parallel apply workers, and table/sequence synchronization workers.

max_parallel_apply_workers_per_subscription — PostgreSQL configuration parameter

Maximum number of parallel apply workers per subscription. This parameter controls the amount of parallelism for streaming of in-progress transactions…

max_repack_replication_slots — PostgreSQL configuration parameter

Specifies the maximum number of replication slots for use of the REPACK command. The default is 5. This parameter can…

default: 5

max_replication_slots — PostgreSQL Configuration Parameter

Max replication slots (physical + logical).

default: 10

max_slot_wal_keep_size — PostgreSQL configuration parameter

Specify the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory at checkpoint…

max_standby_archive_delay — PostgreSQL configuration parameter

When hot standby is active, this parameter determines how long the standby server should wait before canceling standby queries that…

default: 30 seconds

max_standby_streaming_delay — PostgreSQL Configuration Parameter

How long replay waits before canceling a conflicting standby query.

default: 30s

max_sync_workers_per_subscription — PostgreSQL configuration parameter

Maximum number of synchronization workers per subscription. This parameter controls the amount of parallelism of the initial data copy for…

max_wal_senders — PostgreSQL Configuration Parameter

Max concurrent WAL sender processes (standbys + base backups).

default: 10

primary_conninfo — PostgreSQL Configuration Parameter

Connection string a standby uses to stream from the primary.

default: ''

primary_slot_name — PostgreSQL configuration parameter

Optionally specifies an existing replication slot to be used when connecting to the sending server via streaming replication to control…

recovery_min_apply_delay — PostgreSQL configuration parameter

By default, a standby server restores WAL records from the sending server as soon as possible. It may be useful…

default: zero, adding no delay

sync_replication_slots — PostgreSQL configuration parameter

It enables a physical standby to synchronize logical failover slots from the primary server so that logical subscribers can resume…

synchronized_standby_slots — PostgreSQL configuration parameter

A comma-separated list of streaming replication standby server slot names that logical WAL sender processes will wait for. Logical WAL…

synchronous_standby_names — PostgreSQL Configuration Parameter

Standbys that must confirm commits (synchronous replication).

default: ''

track_commit_timestamp — PostgreSQL configuration parameter

Record commit time of transactions. This parameter can only be set at server start. The default value is off.

default: off

wal_keep_size — PostgreSQL Configuration Parameter

Minimum WAL retained for standbys (replaces wal_keep_segments).

default: 0

wal_receiver_create_temp_slot — PostgreSQL configuration parameter

Specifies whether the WAL receiver process should create a temporary replication slot on the remote instance when no permanent replication…

default: off

wal_receiver_status_interval — PostgreSQL configuration parameter

Specifies the minimum frequency for the WAL receiver process on the standby to send information about replication progress to the…

default: 10 seconds

wal_receiver_timeout — PostgreSQL configuration parameter

Terminate replication connections that are inactive for longer than this amount of time. This is useful for the receiving standby…

default: 60 seconds

wal_retrieve_retry_interval — PostgreSQL configuration parameter

Specifies how long the standby server should wait when WAL data is not available from any sources (streaming physical replication,…

default: 5 seconds

wal_sender_shutdown_timeout — PostgreSQL configuration parameter

Specifies the maximum time the server waits during shutdown for all WAL data to be replicated to the receiver. If…

wal_sender_timeout — PostgreSQL configuration parameter

Terminate replication connections that are inactive for longer than this amount of time. This is useful for the sending server…

default: 60 seconds

Resource Consumption

backend_flush_after — PostgreSQL configuration parameter

Whenever more than this amount of data has been written by a single backend, attempt to force the OS to…

default: 0, i

bgwriter_flush_after — PostgreSQL configuration parameter

Whenever more than this amount of data has been written by the background writer, attempt to force the OS to…

default: 512kB on Linux, 0 elsewhere

bgwriter_lru_multiplier — PostgreSQL configuration parameter

The number of dirty buffers written in each round is based on the number of new buffers that have been…

default: 2

commit_timestamp_buffers — PostgreSQL configuration parameter

Specifies the amount of memory to use to cache the contents of pg_commit_ts (see pgdata_contents_table). If this value is specified…

dynamic_shared_memory_type — PostgreSQL configuration parameter

Specifies the dynamic shared memory implementation that the server should use. Possible values are posix (for POSIX shared memory allocated…

file_copy_method — PostgreSQL configuration parameter

Specifies the method used to copy files. Possible values are COPY (default) and CLONE (if operating support is available).

file_extend_method — PostgreSQL configuration parameter

Specifies the method used to extend data files during bulk operations such as COPY. The first available option is used…

huge_page_size — PostgreSQL configuration parameter

Controls the size of huge pages, when they are enabled with huge_pages. The default is zero (0). When set to…

default: zero (0

io_combine_limit — PostgreSQL configuration parameter

Controls the largest I/O size in operations that combine I/O. If set higher than the io_max_combine_limit parameter, the lower value…

default: 128kB

io_max_combine_limit — PostgreSQL configuration parameter

Controls the largest I/O size in operations that combine I/O, and silently limits the user-settable parameter io_combine_limit. This parameter can…

default: 128kB

io_max_concurrency — PostgreSQL configuration parameter

Controls the maximum number of I/O operations that one process can execute simultaneously.

io_max_workers — PostgreSQL configuration parameter

Sets the maximum number of I/O worker processes. The default is 8. This parameter can only be set in the…

default: 8

io_method — PostgreSQL configuration parameter

Selects the method for executing asynchronous I/O. Possible values are: worker (execute asynchronous I/O using worker processes)

io_min_workers — PostgreSQL configuration parameter

Sets the minimum number of I/O worker processes. The default is 2. This parameter can only be set in the…

default: 2

io_worker_idle_timeout — PostgreSQL configuration parameter

Sets the time after which entirely idle I/O worker processes exit, reducing the size of pool to match demand. The…

default: 1 minute

io_worker_launch_interval — PostgreSQL configuration parameter

Sets the minimum time before another I/O worker can be launched. This avoids creating too many for an unsustained burst…

default: 100ms

logical_decoding_work_mem — PostgreSQL configuration parameter

Specifies the maximum amount of memory to be used by logical decoding, before some of the decoded changes are written…

default: 64 megabytes (64MB

max_notify_queue_pages — PostgreSQL configuration parameter

Specifies the maximum amount of allocated pages for notify / listen queue. The default value is 1048576. For 8 KB…

default: 1048576

max_parallel_maintenance_workers — PostgreSQL configuration parameter

Sets the maximum number of parallel workers that can be started by a single utility command. Currently, the parallel utility…

default: 2

max_stack_depth — PostgreSQL configuration parameter

Specifies the maximum safe depth of the server's execution stack. The ideal setting for this parameter is the actual stack…

min_dynamic_shared_memory — PostgreSQL configuration parameter

Specifies the amount of memory that should be allocated at server startup for use by parallel queries. When this memory…

default: 0 (none

multixact_member_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_multixact/members (see pgdata_contents_table). If this value is…

default: 32

multixact_offset_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_multixact/offsets (see pgdata_contents_table). If this value is…

default: 16

notify_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_notify (see pgdata_contents_table). If this value is…

default: 16

parallel_leader_participation — PostgreSQL configuration parameter

Allows the leader process to execute the query plan under Gather and Gather Merge nodes instead of waiting for worker…

default: on

serializable_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_serial (see pgdata_contents_table). If this value is…

default: 32

shared_memory_type — PostgreSQL configuration parameter

Specifies the shared memory implementation that the server should use for the main shared memory region that holds PostgreSQL's shared…

subtransaction_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_subtrans (see pgdata_contents_table). If this value is…

temp_file_limit — PostgreSQL configuration parameter

Specifies the maximum amount of disk space that a process can use for temporary files, such as sort and hash…

timing_clock_source — PostgreSQL configuration parameter

Selects the method for making timing measurements using the OS or specialized CPU instructions. Possible values are: auto (automatically chooses…

transaction_buffers — PostgreSQL configuration parameter

Specifies the amount of shared memory to use to cache the contents of pg_xact (see pgdata_contents_table). If this value is…

vacuum_buffer_usage_limit — PostgreSQL configuration parameter

Specifies the size of the Buffer Access Strategy used by the VACUUM and ANALYZE commands. A setting of 0 will…

default: 2MB

Resource Limits

Run-time Statistics

Statistics

Vacuuming

autovacuum_analyze_scale_factor — PostgreSQL configuration parameter

Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default…

default: 0

autovacuum_analyze_score_weight — PostgreSQL configuration parameter

Specifies the scaling factor of the analyze threshold component of the score used by autovacuum for prioritization purposes. The default…

default: 1

autovacuum_analyze_threshold — PostgreSQL configuration parameter

Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The…

default: 50 tuples

autovacuum_freeze_score_weight — PostgreSQL configuration parameter

Specifies the scaling factor of the transaction ID age component of the score used by autovacuum for prioritization purposes. The…

default: 1

autovacuum_max_parallel_workers — PostgreSQL configuration parameter

Sets the maximum number of parallel workers that can be used by a single autovacuum worker to process indexes. This…

default: 0

autovacuum_multixact_freeze_max_age — PostgreSQL configuration parameter

Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before a VACUUM operation is forced to…

default: a relatively low 400 million multixacts

autovacuum_multixact_freeze_score_weight — PostgreSQL configuration parameter

Specifies the scaling factor of the multixact ID age component of the score used by autovacuum for prioritization purposes. The…

default: 1

autovacuum_vacuum_insert_score_weight — PostgreSQL configuration parameter

Specifies the scaling factor of the vacuum insert threshold component of the score used by autovacuum for prioritization purposes. The…

default: 1

autovacuum_vacuum_insert_threshold — PostgreSQL configuration parameter

Specifies the number of inserted tuples needed to trigger a VACUUM in any one table. The default is 1000 tuples.…

default: 1000 tuples

autovacuum_vacuum_max_threshold — PostgreSQL configuration parameter

Specifies the maximum number of updated or deleted tuples needed to trigger a VACUUM in any one table, i.e., a…

default: 100,000,000 tuples

autovacuum_vacuum_score_weight — PostgreSQL configuration parameter

Specifies the scaling factor of the vacuum threshold component of the score used by autovacuum for prioritization purposes. The default…

default: 1

autovacuum_worker_slots — PostgreSQL configuration parameter

Specifies the number of backend slots to reserve for autovacuum worker processes. The default is typically 16 slots, but might…

vacuum_cost_delay — PostgreSQL configuration parameter

The amount of time that the process will sleep when the cost limit has been exceeded. If this value is…

default: 0, which disables the cost-based vacuum delay feature

vacuum_cost_limit — PostgreSQL configuration parameter

This is the accumulated cost that will cause the vacuuming process to sleep for vacuum_cost_delay. The default is 200.

default: 200

vacuum_cost_page_dirty — PostgreSQL configuration parameter

The estimated cost charged when vacuum modifies a block that was previously clean. It represents the extra I/O required to…

default: 20

vacuum_cost_page_hit — PostgreSQL configuration parameter

The estimated cost for vacuuming a buffer found in the shared buffer cache. It represents the cost to lock the…

default: 1

vacuum_cost_page_miss — PostgreSQL configuration parameter

The estimated cost for vacuuming a buffer that has to be read from disk. This represents the effort to lock…

default: 2

vacuum_failsafe_age — PostgreSQL configuration parameter

Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before VACUUM takes extraordinary measures to avoid…

vacuum_freeze_min_age — PostgreSQL configuration parameter

Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have…

default: 50 million transactions

vacuum_freeze_table_age — PostgreSQL configuration parameter

VACUUM performs an aggressive scan if the table's pg_class.relfrozenxid field has reached the age specified by this setting. An aggressive…

default: 150 million transactions

vacuum_max_eager_freeze_failure_rate — PostgreSQL configuration parameter

Specifies the maximum number of pages (as a fraction of total pages in the relation) that VACUUM may scan and…

default: 0

vacuum_multixact_failsafe_age — PostgreSQL configuration parameter

Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before VACUUM takes extraordinary measures to avoid…

vacuum_multixact_freeze_min_age — PostgreSQL configuration parameter

Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an…

default: 5 million multixacts

vacuum_multixact_freeze_table_age — PostgreSQL configuration parameter

VACUUM performs an aggressive scan if the table's pg_class.relminmxid field has reached the age specified by this setting. An aggressive…

default: 150 million multixacts

vacuum_truncate — PostgreSQL configuration parameter

Enables or disables vacuum to try to truncate off any empty pages at the end of the table. The default…

default: true

Version and Platform Compatibility

allow_alter_system — PostgreSQL configuration parameter

When allow_alter_system is set to off, an error is returned if the ALTER SYSTEM command is executed. This parameter can…

default: on

array_nulls — PostgreSQL configuration parameter

This controls whether the array input parser recognizes unquoted NULL as specifying a null array element. By default, this is…

backslash_quote — PostgreSQL configuration parameter

This parameter controls whether a quote mark can be represented by \' in the escape string syntax (E'...'). The preferred,…

lo_compat_privileges — PostgreSQL configuration parameter

In PostgreSQL releases prior to 9.0, large objects did not have access privileges and were, therefore, always readable and writable…

default: off

quote_all_identifiers — PostgreSQL configuration parameter

When the database generates SQL, force all identifiers to be quoted, even if they are not (currently) keywords. This will…

standard_conforming_strings — PostgreSQL configuration parameter

Beginning in PostgreSQL 19, this parameter is always on. String literals are always parsed as specified in the SQL standard…

synchronize_seqscans — PostgreSQL configuration parameter

This allows sequential scans of large tables to synchronize with each other, so that concurrent scans read the same block…

default: on

transform_null_equals — PostgreSQL configuration parameter

When on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that…

default: off

WAL

Write Ahead Log

archive_cleanup_command — PostgreSQL configuration parameter

This optional parameter specifies a shell command that will be executed at every restartpoint. The purpose of archive_cleanup_command is to…

archive_library — PostgreSQL configuration parameter

The library to use for archiving completed WAL file segments. If set to an empty string (the default), archiving via…

archive_timeout — PostgreSQL configuration parameter

The archive_command or archive_library is only invoked for completed WAL segments. Hence, if your server generates little WAL traffic (or…

checkpoint_flush_after — PostgreSQL configuration parameter

Whenever more than this amount of data has been written while performing a checkpoint, attempt to force the OS to…

default: 256kB on Linux, 0 elsewhere

checkpoint_warning — PostgreSQL configuration parameter

Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together…

default: 30 seconds (30s

commit_delay — PostgreSQL configuration parameter

Setting commit_delay adds a time delay before a WAL flush is initiated. This can improve group commit throughput by allowing…

commit_siblings — PostgreSQL configuration parameter

Minimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable…

default: five transactions

recovery_end_command — PostgreSQL configuration parameter

This parameter specifies a shell command that will be executed once only at the end of recovery. This parameter is…

recovery_prefetch — PostgreSQL configuration parameter

Whether to try to prefetch blocks that are referenced in the WAL that are not yet in the buffer pool,…

recovery_target_action — PostgreSQL configuration parameter

Specifies what action the server should take once the recovery target is reached. The default is pause, which means recovery…

default: pause, which means recovery will be paused

recovery_target_inclusive — PostgreSQL configuration parameter

Specifies whether to stop just after the specified recovery target (on), or just before the recovery target (off). Applies when…

recovery_target_lsn — PostgreSQL configuration parameter

This parameter specifies the LSN of the write-ahead log location up to which recovery will proceed. The precise stopping point…

recovery_target_name — PostgreSQL configuration parameter

This parameter specifies the named restore point (created with pg_create_restore_point()) to which recovery will proceed.

recovery_target_time — PostgreSQL configuration parameter

This parameter specifies the time stamp up to which recovery will proceed. The precise stopping point is also influenced by…

recovery_target_timeline — PostgreSQL configuration parameter

Specifies recovering into a particular timeline. The value can be a numeric timeline ID or a special value. The value…

recovery_target_xid — PostgreSQL configuration parameter

This parameter specifies the transaction ID up to which recovery will proceed. Keep in mind that while transaction IDs are…

restore_command — PostgreSQL configuration parameter

The local shell command to execute to retrieve an archived segment of the WAL file series. This parameter is required…

summarize_wal — PostgreSQL configuration parameter

Enables the WAL summarizer process. Note that WAL summarization can be enabled either on a primary or on a standby.…

default: off

wal_decode_buffer_size — PostgreSQL configuration parameter

A limit on how far ahead the server can look in the WAL, to find blocks to prefetch. If this…

default: 512kB

wal_init_zero — PostgreSQL configuration parameter

If set to on (the default), this option causes new WAL files to be filled with zeroes. On some file…

wal_log_hints — PostgreSQL configuration parameter

When this parameter is on, the PostgreSQL server writes the entire content of each disk page to WAL during the…

wal_recycle — PostgreSQL configuration parameter

If set to on (the default), this option causes WAL files to be recycled by renaming them, avoiding the need…

wal_skip_threshold — PostgreSQL configuration parameter

When wal_level is minimal and a transaction commits after creating or rewriting a permanent relation, this setting determines how to…

default: two megabytes (2MB

wal_summary_keep_time — PostgreSQL configuration parameter

Configures the amount of time after which the WAL summarizer automatically removes old WAL summaries. The file timestamp is used…

default: 10 days

wal_sync_method — PostgreSQL configuration parameter

Method used for forcing WAL updates out to disk. If fsync is off then this setting is irrelevant, since WAL…

wal_writer_delay — PostgreSQL configuration parameter

Specifies how often the WAL writer flushes WAL, in time terms. After flushing WAL the writer sleeps for the length…

default: 200 milliseconds (200ms

wal_writer_flush_after — PostgreSQL configuration parameter

Specifies how often the WAL writer flushes WAL, in volume terms. If the last flush happened less than wal_writer_delay ago…

default: 1MB