Type object
Schema URL https://catalog.lintel.tools/schemas/schemastore/kontinuous-values-yaml/_shared/latest--parameters.json
Parent schema kontinuous-values-yaml
Type: object

Properties

allow_in_place_tablespaces string

Allows tablespaces directly inside pg_tblspc, for testing.

see allow_in_place_tablespaces documentation

Examples: "off"
allow_system_table_mods string

Allows modifications of the structure of system tables.

Only available in single-user mode; this setting is for initdb and may be used in the future for upgrade-in-place.

see allow_system_table_mods documentation

Examples: "off"
application_name string

Sets the application name to be reported in statistics and logs.

Set this to a reasonable default for most user sessions; if in the middle of working over your application to support application names, this might be "unknown".

see application_name documentation

Examples: "psql"
archive_cleanup_command string

Sets the shell command that will be executed at every restart point.

see archive_cleanup_command documentation

archive_command string

Sets the shell command that will be called to archive a WAL file.

All of the Archiving settings are part of a Point In Time Recovery or Warm Standby configuration. Please see the Backup and Restore section for more information.

see archive_command documentation

Examples: "/controller/manager wal-archive --log-destination /controller/log/postgres.json %p"
archive_mode string

Allows archiving of WAL files using archive_command.

Requires a restart to change, so if you want to turn archiving on and off, set this to 'on' and change archive_command instead. Even better, set archive_command to a script which can be disabled by trigger or ENV variable.

see archive_mode documentation

Values: "always" "on" "off"
Examples: "on"
archive_timeout string

Forces a switch to the next WAL file if a new file has not been started within N seconds.

Minimum: 0

Maximum: 1073741823

Dependant on your tradeoff between disk space and letting the standby get behind.

see archive_timeout documentation

Examples: "300"
array_nulls string

Enable input of NULL elements in arrays.

Provided for compatibility with 7.4 behavior.

see array_nulls documentation

Examples: "on"
authentication_timeout string

Sets the maximum allowed time to complete client authentication.

Minimum: 1

Maximum: 600

For production databases, it's important that this value be synchronized with the timeout on the application server side. Most web applications will want a shorter timeout, like 20s.

see authentication_timeout documentation

Examples: "60"
autovacuum string

Starts the autovacuum subprocess.

Starts the daemon which cleans up your tables and indexes, preventing bloat and poor response times. The only reason to set it to "off" is for databases which regularly do large batch operations like ETL. Note that you can adjust the frequency or stop autovacuum on individual tables by adding rows to the pg_autovacuum system table.

see autovacuum documentation

Examples: "on"
autovacuum_analyze_scale_factor string

Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples.

Minimum: 0

Maximum: 100

This setting should be optimal for most databases. However, very large tables (1m rows or more) in which rows are added in a skewed fashion may need to be autoanalyzed at a lower percentage, such as 5% or even 1%.

see autovacuum_analyze_scale_factor documentation

Examples: "0.1"
autovacuum_analyze_threshold string

Minimum number of tuple inserts, updates, or deletes prior to analyze.

Minimum: 0

Maximum: 2147483647

see autovacuum_analyze_threshold documentation

Examples: "50"
autovacuum_freeze_max_age string

Age at which to autovacuum a table to prevent transaction ID wraparound.

Minimum: 100000

Maximum: 2000000000

Triggers autovacuum automatically if a table is about to suffer from XID rollover. The setting is very conservative, and should probably be increased to 500million, but not higher.

see autovacuum_freeze_max_age documentation

Examples: "200000000"
autovacuum_max_workers string

Sets the maximum number of simultaneously running autovacuum worker processes.

Minimum: 1

Maximum: 262143

If you have an installation with many tables (100's to 1000's) or with some tables which autovacuum takes hours to process, you may want to add additional autovacuum workers so that multiple tables can be vacuumed at once. Be conservative, though, as each autovacuum worker will utilize a separate CPU core, memory and I/O.

see autovacuum_max_workers documentation

Examples: "3"
autovacuum_multixact_freeze_max_age string

Multixact age at which to autovacuum a table to prevent multixact wraparound.

Minimum: 10000

Maximum: 2000000000

Triggers autovacuum automatically when the oldest "multixact" (a kind of lock transaction) is more than this old. Do not raise past 1billion.

see autovacuum_multixact_freeze_max_age documentation

Examples: "400000000"
autovacuum_naptime string

Time to sleep between autovacuum runs.

Minimum: 1

Maximum: 2147483

Decrease this to 30s or 15s if you have a large number (100's) of tables, or if you otherwise see from pg_stat_user_tables that autovacuum is not keeping up.

see autovacuum_naptime documentation

Examples: "60"
autovacuum_vacuum_cost_delay string

Vacuum cost delay in milliseconds, for autovacuum.

Minimum: -1

Maximum: 100

If autovacuum is having too much of a performance impact on running queries, you might want to increase this setting to 50ms. However, this will also cause individual vacuum tasks to take longer.

see autovacuum_vacuum_cost_delay documentation

Examples: "2"
autovacuum_vacuum_cost_limit string

Vacuum cost amount available before napping, for autovacuum.

Minimum: -1

Maximum: 10000

see autovacuum_vacuum_cost_limit documentation

Examples: "-1"
autovacuum_vacuum_insert_scale_factor string

Number of tuple inserts prior to vacuum as a fraction of reltuples.

Minimum: 0

Maximum: 100

see autovacuum_vacuum_insert_scale_factor documentation

Examples: "0.2"
autovacuum_vacuum_insert_threshold string

Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums.

Minimum: -1

Maximum: 2147483647

see autovacuum_vacuum_insert_threshold documentation

Examples: "1000"
autovacuum_vacuum_scale_factor string

Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.

Minimum: 0

Maximum: 100

see autovacuum_vacuum_scale_factor documentation

Examples: "0.2"
autovacuum_vacuum_threshold string

Minimum number of tuple updates or deletes prior to vacuum.

Minimum: 0

Maximum: 2147483647

see autovacuum_vacuum_threshold documentation

Examples: "50"
autovacuum_work_mem string

Sets the maximum memory to be used by each autovacuum worker process.

Minimum: -1

Maximum: 2147483647

Set a limit on this which is based on the number of autovac workers you expect to have running.

see autovacuum_work_mem documentation

Examples: "-1"
backend_flush_after string

Number of pages after which previously performed writes are flushed to disk.

Minimum: 0

Maximum: 256

Unless you have time to tune memory flushing behavior and test for improvements/regressions

see backend_flush_after documentation

Examples: "0"
backslash_quote string

Sets whether "'" is allowed in string literals.

If you have cleaned up your application code, you can set this to 'off' to help lock down the database. Older PHP applications will require the insecure setting of 'on'.

see backslash_quote documentation

Values: "safe_encoding" "on" "off"
Examples: "safe_encoding"
backtrace_functions string

Log backtrace for errors in these functions.

see backtrace_functions documentation

bgwriter_delay string

Background writer sleep time between rounds.

Minimum: 10

Maximum: 10000

Thanks to bgwriter autotuning, it should no longer be necessary for most users to touch the bgwriter settings. Only modify these if you have a demonstrated issue shown by checkpoint spikes and monitoring pg_stat_bgwriter. Laptop PostgreSQL users may want to increase bgwriter_delay to 60s to decrease I/O activity, since it is no longer possible to turn the bgwriter off.

see bgwriter_delay documentation

Examples: "200"
bgwriter_flush_after string

Number of pages after which previously performed writes are flushed to disk.

Minimum: 0

Maximum: 256

Unless you have time to tune memory flushing behavior and test for improvements/regressions

see bgwriter_flush_after documentation

Examples: "64"
bgwriter_lru_maxpages string

Background writer maximum number of LRU pages to flush per round.

Minimum: 0

Maximum: 1073741823

see bgwriter_lru_maxpages documentation

Examples: "100"
bgwriter_lru_multiplier string

Multiple of the average buffer usage to free per round.

Minimum: 0

Maximum: 10

see bgwriter_lru_multiplier documentation

Examples: "2"
block_size string

Shows the size of a disk block.

Minimum: 8192

Maximum: 8192

Informational: lets you know of non-standard installation or compile options.

see block_size documentation

Examples: "8192"
bonjour string

Enables advertising the server via Bonjour.

Set to "on" if you've compiled in Bonjour support and have an application which works by autodiscovery of Postgres. Otherwise, leave off.

see bonjour documentation

Examples: "off"
bonjour_name string

Sets the Bonjour service name.

Bonjour support must be compiled in and activated on the host machine to be live. You'll want alternate names if you have several instances of PostgreSQL on the same machine.

see bonjour_name documentation

bytea_output string

Sets the output format for bytea.

see bytea_output documentation

Values: "escape" "hex"
Examples: "hex"
check_function_bodies string

Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE.

You only really want to turn this off to resolve circular dependancies, and that can be done on a per-session basis. In general, checking for syntax errors in PL/pgSQL functions is a very good idea.

see check_function_bodies documentation

Examples: "on"
checkpoint_completion_target string

Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval.

Minimum: 0

Maximum: 1

Defines the fraction of one checkpoint_interval over which to spread checkpoints. The default value works for most users.

see checkpoint_completion_target documentation

Examples: "0.9"
checkpoint_flush_after string

Number of pages after which previously performed writes are flushed to disk.

Minimum: 0

Maximum: 256

Unless you have time to tune memory flushing behavior and test for improvements/regressions

see checkpoint_flush_after documentation

Examples: "32"
checkpoint_timeout string

Sets the maximum time between automatic WAL checkpoints.

Minimum: 30

Maximum: 86400

If you do really large ETL batches, you may want to increase this setting to the maximum length of a batch run.

see checkpoint_timeout documentation

Examples: "300"
checkpoint_warning string

Enables warnings if checkpoint segments are filled more frequently than this.

Minimum: 0

Maximum: 2147483647

see checkpoint_warning documentation

Examples: "30"
client_connection_check_interval string

Sets the time interval between checks for disconnection while running queries.

Minimum: 0

Maximum: 2147483647

see client_connection_check_interval documentation

Examples: "0"
client_encoding string

Sets the client's character set encoding.

Should match server_encoding unless you have a really good reason why not.

see client_encoding documentation

Examples: "UTF8"
client_min_messages string

Sets the message levels that are sent to the client.

Unless doing interactive debugging, then you want it set to DEBUG1-5. If you have a client application which is confused by some of PostgreSQL's WARNINGs then you may want to set this to ERROR.

see client_min_messages documentation

Values: "debug5" "debug4" "debug3" "debug2" "debug1" "log" "notice" "warning" "error"
Examples: "notice"
cluster_name string

Sets the name of the cluster, which is included in the process title.

Should be "postgres-1" or something else identifiable as this specific postmaster.

see cluster_name documentation

Examples: "pg"
commit_delay string

Sets the delay in microseconds between transaction commit and flushing WAL to disk.

Minimum: 0

Maximum: 100000

A primitive form of group commit without asynchronicity. Performance testing of this is very mixed; only set to non-zero if you have time to test the specific performance impact on your workload. Reasonable values are 200 to 1000.

see commit_delay documentation

Examples: "0"
commit_siblings string

Sets the minimum concurrent open transactions before performing commit_delay.

Minimum: 0

Maximum: 1000

See commit_delay. Reasonable values are 3 to 8

see commit_siblings documentation

Examples: "5"
compute_query_id string

Compute query identifiers.

see compute_query_id documentation

Values: "auto" "regress" "on" "off"
Examples: "auto"
config_file string

Sets the server's main configuration file.

Can only be changed via command-line switch for obvious reasons. Useful primarily for testing different configuration options, or for automated restart with different configuration options.

see config_file documentation

Examples: "/var/lib/postgresql/data/pgdata/postgresql.conf"
constraint_exclusion string

Enables the planner to use constraints to optimize queries.

Default of "partition" is fine for most users. Setting it to "on" can allow optimization of UNION queries as well, but deserves testing before production deployment.

see constraint_exclusion documentation

Values: "partition" "on" "off"
Examples: "partition"
cpu_index_tuple_cost string

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

Minimum: 0

Maximum: 1.79769e+308

Decrease this slightly to make your database favor indexes slightly more.

see cpu_index_tuple_cost documentation

Examples: "0.005"
cpu_operator_cost string

Sets the planner's estimate of the cost of processing each operator or function call.

Minimum: 0

Maximum: 1.79769e+308

Decrease this slightly to make your database favor indexes slightly more.

see cpu_operator_cost documentation

Examples: "0.0025"
cpu_tuple_cost string

Sets the planner's estimate of the cost of processing each tuple (row).

Minimum: 0

Maximum: 1.79769e+308

see cpu_tuple_cost documentation

Examples: "0.01"
cursor_tuple_fraction string

Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved.

Minimum: 0

Maximum: 1

Increase this to 0.9 if most of the time you're using cursors to step through all of the rows of a query result.

see cursor_tuple_fraction documentation

Examples: "0.1"
data_checksums string

Shows whether data checksums are turned on for this cluster.

This has to be set at initdb time, and does create a significant amount of extra I/O. However, it will save you from a corrupt database down the line, so if you're not performance-constrained, always use it.

see data_checksums documentation

Examples: "off"
data_directory string

Sets the server's data directory.

Supports the ability to distribute files according to sysadmin or operating system defined schemes, or for launching multiple restart instances using the same binaries. Most of the time, it's better to use configuration options to define these locations so that all PostgreSQL binaries default to the correct paths.

see data_directory documentation

Examples: "/var/lib/postgresql/data/pgdata"
data_directory_mode string

Shows the mode of the data directory.

Minimum: 0

Maximum: 511

see data_directory_mode documentation

Examples: "0700"
data_sync_retry string

Whether to continue running after a failure to sync data files.

see data_sync_retry documentation

Examples: "off"
DateStyle string

Sets the display format for date and time values.

Should be set according to the format in which you expect to receive date information.

see DateStyle documentation

Examples: "ISO, MDY"
db_user_namespace string

Enables per-database user names.

This setting is a hack to work around the lack of per-database users in PostgreSQL. Unless you desperately need it, avoid this setting as it will eventually be replaced by something more maintainable.

see db_user_namespace documentation

Examples: "off"
deadlock_timeout string

Sets the time to wait on a lock before checking for deadlock.

Minimum: 1

Maximum: 2147483647

Default is fine, except when you are troubleshooting/monitoring locks. In that case, you may want to lower it to as little as 50ms.

see deadlock_timeout documentation

Examples: "1000"
debug_assertions string

Shows whether the running server has assertion checks enabled.

Used for debugging PostgreSQL code problems; not for production use. Requires compile options.

see debug_assertions documentation

Examples: "off"
debug_discard_caches string

Aggressively flush system caches for debugging purposes.

Minimum: 0

Maximum: 0

see debug_discard_caches documentation

Examples: "0"
debug_pretty_print string

Indents parse and plan tree displays.

For debugging a testing machine. Do not set in production.

see debug_pretty_print documentation

Examples: "on"
debug_print_parse string

Logs each query's parse tree.

For debugging a testing machine. Do not set in production.

see debug_print_parse documentation

Examples: "off"
debug_print_plan string

Logs each query's execution plan.

For debugging a testing machine. Do not set in production.

see debug_print_plan documentation

Examples: "off"
debug_print_rewritten string

Logs each query's rewritten parse tree.

For debugging a testing machine. Do not set in production.

see debug_print_rewritten documentation

Examples: "off"
default_statistics_target string

Sets the default statistics target.

Minimum: 1

Maximum: 10000

Most applications can use the default of 100. For very small/simple databases, decrease to 10 or 50. Data warehousing applications generally need to use 500 to 1000. Otherwise, increase statistics targets on a per-column basis.

see default_statistics_target documentation

Examples: "100"
default_table_access_method string

Sets the default table access method for new tables.

see default_table_access_method documentation

Examples: "heap"
default_tablespace string

Sets the default tablespace to create tables and indexes in.

Change this if you want a different tablespace for user-created tables. Generally, better set on a ROLE or session basis.

see default_tablespace documentation

default_text_search_config string

Sets default text search configuration.

Set to the most common language used by the users, so that they don't have to pass the language parameter when calling TSearch functions.

see default_text_search_config documentation

Examples: "pg_catalog.english"
default_toast_compression string

Sets the default compression method for compressible values.

see default_toast_compression documentation

Values: "pglz" "lz4"
Examples: "pglz"
default_transaction_deferrable string

Sets the default deferrable status of new transactions.

If you use serializable transactions by default, it may be also useful to set this in order to decrease the overhead of long-running transactions.

see default_transaction_deferrable documentation

Examples: "off"
default_transaction_isolation string

Sets the transaction isolation level of each new transaction.

Relates to transaction_isolation. Better set on a session or transaction basis as transaction_isolation in order to support specific types of transaction conflict resolution.

see default_transaction_isolation documentation

Values: "serializable" ""repeatable read"" ""read committed"" ""read uncommitted""
Examples: "read committed"
default_transaction_read_only string

Sets the default read-only status of new transactions.

This setting is mainly useful for preventing yourself from accidentally changing data. It is not really a security setting, as anyone can revoke it on their own session. Better set on a session or ROLE level. Will show up as TRUE if you are on a replication standby.

see default_transaction_read_only documentation

Examples: "off"
dynamic_library_path string

Sets the path for dynamically loadable modules.

Primarily useful if you've written lots of custom C libraries for your installation and want to organize them into custom directories.

see dynamic_library_path documentation

Examples: "$libdir"
dynamic_shared_memory_type string

Selects the dynamic shared memory implementation used.

see dynamic_shared_memory_type documentation

Values: "posix" "sysv" "mmap"
Examples: "posix"
effective_cache_size string

Sets the planner's assumption about the total size of the data caches.

Minimum: 1

Maximum: 2147483647

Tells the PostgreSQL query planner how much RAM is estimated to be available for caching data, in both shared_buffers and in the filesystem cache. This setting just helps the planner make good cost estimates; it does not actually allocate the memory.

see effective_cache_size documentation

Examples: "524288"
effective_io_concurrency string

Number of simultaneous requests that can be handled efficiently by the disk subsystem.

Minimum: 0

Maximum: 1000

Set to the number of disks in your RAID array or number of I/O channels. Available only for platforms with posix_fadvise support (i.e. Linux). Currently only affects the execution of parallel bitmapscan, but might affect other I/O operations in future versions.

see effective_io_concurrency documentation

Examples: "1"
enable_async_append string

Enables the planner's use of async append plans.

see enable_async_append documentation

Examples: "on"
enable_bitmapscan string

Enables the planner's use of bitmap-scan plans.

For interactive session use only when troubleshooting queries.

see enable_bitmapscan documentation

Examples: "on"
enable_gathermerge string

Enables the planner's use of gather merge plans.

see enable_gathermerge documentation

Examples: "on"
enable_hashagg string

Enables the planner's use of hashed aggregation plans.

For interactive session use only when troubleshooting queries.

see enable_hashagg documentation

Examples: "on"
enable_hashjoin string

Enables the planner's use of hash join plans.

For interactive session use only when troubleshooting queries.

see enable_hashjoin documentation

Examples: "on"
enable_incremental_sort string

Enables the planner's use of incremental sort steps.

see enable_incremental_sort documentation

Examples: "on"
enable_indexonlyscan string

Enables the planner's use of index-only-scan plans.

see enable_indexonlyscan documentation

Examples: "on"
enable_indexscan string

Enables the planner's use of index-scan plans.

For interactive session use only when troubleshooting queries.

see enable_indexscan documentation

Examples: "on"
enable_material string

Enables the planner's use of materialization.

For interactive session use only when troubleshooting queries.

see enable_material documentation

Examples: "on"
enable_memoize string

Enables the planner's use of memoization.

see enable_memoize documentation

Examples: "on"
enable_mergejoin string

Enables the planner's use of merge join plans.

For interactive session use only when troubleshooting queries.

see enable_mergejoin documentation

Examples: "on"
enable_nestloop string

Enables the planner's use of nested-loop join plans.

For interactive session use only when troubleshooting queries.

see enable_nestloop documentation

Examples: "on"
enable_parallel_append string

Enables the planner's use of parallel append plans.

see enable_parallel_append documentation

Examples: "on"
enable_parallel_hash string

Enables the planner's use of parallel hash plans.

see enable_parallel_hash documentation

Examples: "on"
enable_partition_pruning string

Enables plan-time and execution-time partition pruning.

see enable_partition_pruning documentation

Examples: "on"
enable_partitionwise_aggregate string

Enables partitionwise aggregation and grouping.

see enable_partitionwise_aggregate documentation

Examples: "off"
enable_partitionwise_join string

Enables partitionwise join.

see enable_partitionwise_join documentation

Examples: "off"
enable_seqscan string

Enables the planner's use of sequential-scan plans.

For interactive session use only when troubleshooting queries.

see enable_seqscan documentation

Examples: "on"
enable_sort string

Enables the planner's use of explicit sort steps.

For interactive session use only when troubleshooting queries.

see enable_sort documentation

Examples: "on"
enable_tidscan string

Enables the planner's use of TID scan plans.

For interactive session use only when troubleshooting queries.

see enable_tidscan documentation

Examples: "on"
escape_string_warning string

Warn about backslash escapes in ordinary string literals.

Useful for providing warnings for interpreted-language applications which may be engaging in unsafe string escape behavior. Unless you are currently porting or upgrading such an application, though, these warnings are not useful and should be turned off.

see escape_string_warning documentation

Examples: "on"
event_source string

Sets the application name used to identify PostgreSQL messages in the event log.

Should be "postgres-1" or something else identifiable as this specific postmaster.

see event_source documentation

Examples: "PostgreSQL"
exit_on_error string

Terminate session on any error.

see exit_on_error documentation

Examples: "off"
extension_destdir string

Path to prepend for extension loading

see extension_destdir documentation

external_pid_file string

Writes the postmaster PID to the specified file.

Creates an extra copy of the process ID. Used for server administration tools which need a copy of the process ID in a specific directory.

see external_pid_file documentation

extra_float_digits string

Sets the number of digits displayed for floating-point values.

Minimum: -15

Maximum: 3

Only significant for applications which do a lot of float calculations, like scientific databases.

see extra_float_digits documentation

Examples: "1"
force_parallel_mode string

Forces use of parallel query facilities.

see force_parallel_mode documentation

Values: "off" "on" "regress"
Examples: "off"
from_collapse_limit string

Sets the FROM-list size beyond which subqueries are not collapsed.

Minimum: 1

Maximum: 2147483647

While it's probably true that newer CPUs could support higher collapse_limits, there's not much incremental benefit to just raising either collapse_limit to 10 or 11.

see from_collapse_limit documentation

Examples: "8"
fsync string

Forces synchronization of updates to disk.

Never turn off unless your data is entirely disposable. Setting fsync=off is the equivalent of saying " don't care about my data, I can recreate the database from scratch if I have to... If synch activity is a performance concern, see synchronous_commit.

see fsync documentation

Examples: "on"
full_page_writes string

Writes full pages to WAL when first modified after a checkpoint.

This is PostgreSQL's triple-check on transaction log integrity. Leave it on unless you have enough in-depth knowledge of your filesystem and hardware to be certain that torn page writes of log segments are completely prevented. Solaris/ZFS users claim to be able to turn this off, but that has not been destruction-tested.

see full_page_writes documentation

Examples: "on"
geqo string

Enables genetic query optimization.

see geqo documentation

Examples: "on"
geqo_effort string

GEQO: effort is used to set the default for other GEQO parameters.

Minimum: 1

Maximum: 10

see geqo_effort documentation

Examples: "5"
geqo_generations string

GEQO: number of iterations of the algorithm.

Minimum: 0

Maximum: 2147483647

see geqo_generations documentation

Examples: "0"
geqo_pool_size string

GEQO: number of individuals in the population.

Minimum: 0

Maximum: 2147483647

see geqo_pool_size documentation

Examples: "0"
geqo_seed string

GEQO: seed for random path selection.

Minimum: 0

Maximum: 1

If you set this manually, you can force repeatable execution paths for GEQO queries.

see geqo_seed documentation

Examples: "0"
geqo_selection_bias string

GEQO: selective pressure within the population.

Minimum: 1.5

Maximum: 2

see geqo_selection_bias documentation

Examples: "2"
geqo_threshold string

Sets the threshold of FROM items beyond which GEQO is used.

Minimum: 2

Maximum: 2147483647

With new, faster processors it's tempting to raise the geqo_threshold a little, such as to 16 or 18. Increasing more than that is unwise as query planning time goes up geometrically.

see geqo_threshold documentation

Examples: "12"
gin_fuzzy_search_limit string

Sets the maximum allowed result for exact search by GIN.

Minimum: 0

Maximum: 2147483647

If you're going to use GIN queries in a web application, it's generally useful to set a limit on how many rows can be returned from the index just for response times. However, the maximum number needs to depend on your application; what do users see as an acceptable expression of "many"?

see gin_fuzzy_search_limit documentation

Examples: "0"
gin_pending_list_limit string

Sets the maximum size of the pending list for GIN index.

Minimum: 64

Maximum: 2147483647

Unless you have a lot of GIN indexed data and have time to test the performance of fastupdate. Even then, it's probably better to set it on individual indexes.

see gin_pending_list_limit documentation

Examples: "4096"
hash_mem_multiplier string

Multiple of work_mem to use for hash tables.

Minimum: 1

Maximum: 1000

see hash_mem_multiplier documentation

Examples: "1"
hba_file string

Sets the server's "hba" configuration file.

Allows you to move the pg_hba file to a sysadmin-specified location.

see hba_file documentation

Examples: "/var/lib/postgresql/data/pgdata/pg_hba.conf"
hot_standby string

Allows connections and queries during recovery.

Set to "on", unless you want to specifically prohibit people from running queries on a standby server.

see hot_standby documentation

Examples: "on"
hot_standby_feedback string

Allows feedback from a hot standby to the primary that will avoid query conflicts.

Helps avoid query cancel on the replicas in most cases. Turn it off for a replica which does long-running reports and is allowed to lag.

see hot_standby_feedback documentation

Examples: "off"
huge_page_size string

The size of huge page that should be requested.

Minimum: 0

Maximum: 2147483647

see huge_page_size documentation

Examples: "0"
huge_pages string

Use of huge pages on Linux or Windows.

However, for small systems (< 2GB of RAM) may be beneficial to set to "off".

see huge_pages documentation

Values: "off" "on" "try"
Examples: "try"
ident_file string

Sets the server's "ident" configuration file.

Allows you to move the pg_ident file to a sysadmin-specified location.

see ident_file documentation

Examples: "/var/lib/postgresql/data/pgdata/pg_ident.conf"
idle_in_transaction_session_timeout string

Sets the maximum allowed idle time between queries, when in a transaction.

Minimum: 0

Maximum: 2147483647

Set to 1 hour maximum, or as low as 1 minute if you know your query load well. Idle transactions are bad news.

see idle_in_transaction_session_timeout documentation

Examples: "240000"
idle_session_timeout string

Sets the maximum allowed idle time between queries, when not in a transaction.

Minimum: 0

Maximum: 2147483647

see idle_session_timeout documentation

Examples: "0"
ignore_checksum_failure string

Continues processing after a checksum failure.

For rescuing a corrupt DB

see ignore_checksum_failure documentation

Examples: "off"
ignore_invalid_pages string

Continues recovery after an invalid pages failure.

see ignore_invalid_pages documentation

Examples: "off"
ignore_system_indexes string

Disables reading from system indexes.

Useful for salvaging data from a corrupted database.

see ignore_system_indexes documentation

Examples: "off"
in_hot_standby string

Shows whether hot standby is currently active.

see in_hot_standby documentation

Examples: "off"
integer_datetimes string

Shows whether datetimes are integer based.

Informational: lets you know of non-standard installation or compile options.

see integer_datetimes documentation

Examples: "on"
IntervalStyle string

Sets the display format for interval values.

This is just in case your applications are expecting something specific in how INTERVAL strings are output.

see IntervalStyle documentation

Values: "postgres" "postgres_verbose" "sql_standard" "iso_8601"
Examples: "postgres"
jit string

Allow JIT compilation.

see jit documentation

Examples: "on"
jit_above_cost string

Perform JIT compilation if query is more expensive.

Minimum: -1

Maximum: 1.79769e+308

see jit_above_cost documentation

Examples: "100000"
jit_debugging_support string

Register JIT-compiled functions with debugger.

see jit_debugging_support documentation

Examples: "off"
jit_dump_bitcode string

Write out LLVM bitcode to facilitate JIT debugging.

see jit_dump_bitcode documentation

Examples: "off"
jit_expressions string

Allow JIT compilation of expressions.

see jit_expressions documentation

Examples: "on"
jit_inline_above_cost string

Perform JIT inlining if query is more expensive.

Minimum: -1

Maximum: 1.79769e+308

see jit_inline_above_cost documentation

Examples: "500000"
jit_optimize_above_cost string

Optimize JIT-compiled functions if query is more expensive.

Minimum: -1

Maximum: 1.79769e+308

see jit_optimize_above_cost documentation

Examples: "500000"
jit_profiling_support string

Register JIT-compiled functions with perf profiler.

see jit_profiling_support documentation

Examples: "off"
jit_provider string

JIT provider to use.

see jit_provider documentation

Examples: "llvmjit"
jit_tuple_deforming string

Allow JIT compilation of tuple deforming.

see jit_tuple_deforming documentation

Examples: "on"
join_collapse_limit string

Sets the FROM-list size beyond which JOIN constructs are not flattened.

Minimum: 1

Maximum: 2147483647

If for some reason you wanted to explicitly declare the join order for all of your queries, you could set this to 1. That is not recommended, though.

see join_collapse_limit documentation

Examples: "8"
krb_caseins_users string

Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.

Speak with your sysadmin or network security about how to set the various kerberos settings to match your local kerberos setup. Kerberos support must be compiled in to PostgreSQL, and set in pg_hba.conf.

see krb_caseins_users documentation

Examples: "off"
krb_server_keyfile string

Sets the location of the Kerberos server key file.

see krb_server_keyfile documentation

Examples: "FILE:/etc/postgresql-common/krb5.keytab"
lc_collate string

Shows the collation order locale.

Set at initdb time. Displayed for information only.

see lc_collate documentation

Examples: "C"
lc_ctype string

Shows the character classification and case conversion locale.

Set at initdb time. Displayed for information only.

see lc_ctype documentation

Examples: "C"
lc_messages string

Sets the language in which messages are displayed.

see lc_messages documentation

Examples: "en_US.utf8"
lc_monetary string

Sets the locale for formatting monetary amounts.

see lc_monetary documentation

Examples: "en_US.utf8"
lc_numeric string

Sets the locale for formatting numbers.

see lc_numeric documentation

Examples: "en_US.utf8"
lc_time string

Sets the locale for formatting date and time values.

see lc_time documentation

Examples: "en_US.utf8"
listen_addresses string

Sets the host name or IP address(es) to listen to.

Set your listen_address as restrictively as possible; '*' should only be used for development machines

see listen_addresses documentation

Examples: "*"
lo_compat_privileges string

Enables backward compatibility mode for privilege checks on large objects.

see lo_compat_privileges documentation

Examples: "off"
local_preload_libraries string

Lists unprivileged shared libraries to preload into each backend.

This is largely a convenience setting, automatically loading libraries listed without needing an explicit load command. Has no effect on performance.

see local_preload_libraries documentation

lock_timeout string

Sets the maximum allowed duration of any wait for a lock.

Minimum: 0

Maximum: 2147483647

... but consider setting this per application or per query for any explicit locking attempts.

see lock_timeout documentation

Examples: "0"
log_autovacuum_min_duration string

Sets the minimum execution time above which autovacuum actions will be logged.

Minimum: -1

Maximum: 2147483647

Logs all autovacuum actions which take more than the specified time. Useful for figuring out if autovacuum is bogging down your system or blocking.

see log_autovacuum_min_duration documentation

Examples: "-1"
log_checkpoints string

Logs each checkpoint.

When doing performance analysis, it's often a good idea to turn on most of the logging options and log them to a CSVlog.

see log_checkpoints documentation

Examples: "off"
log_connections string

Logs each successful connection.

Useful for performance analysis.

see log_connections documentation

Examples: "off"
log_destination string

Sets the destination for server log output.

Your choice of log destination depends on your system administration plans and the status of your server. "syslog" or "eventlog" (Windows) are good choices for most development servers, because they can support centralized log monitors. For development and testing, however, "csvlog" is probably the most useful, as it allows you to run queries against the log contents.

see log_destination documentation

Examples: "csvlog"
log_directory string

Sets the destination directory for log files.

If you are having PostgreSQL keep its own activity logs on a production server, it's probably a good idea to locate them on separate storage from the database and transaction log.

see log_directory documentation

Examples: "/controller/log"
log_disconnections string

Logs end of a session, including duration.

Useful for performance analysis.

see log_disconnections documentation

Examples: "off"
log_duration string

Logs the duration of each completed SQL statement.

Useful for performance analysis.

see log_duration documentation

Examples: "off"
log_error_verbosity string

Sets the verbosity of logged messages.

Unless doing intensive debugging. Alternately, set to TERSE if managing log volume is becoming a problem.

see log_error_verbosity documentation

Values: "terse" "default" "verbose"
Examples: "default"
log_executor_stats string

Writes executor performance statistics to the server log.

Used for profiling the query executor.

see log_executor_stats documentation

Examples: "off"
log_file_mode string

Sets the file permissions for log files.

Minimum: 0

Maximum: 511

... unless you need to share the log with Postgres' unix group, in which case set it to 660.

see log_file_mode documentation

Examples: "0600"
log_filename string

Sets the file name pattern for log files.

If you want your logs to rotate automatically without needing a cron job to delete old logs, try naming them after the days of the week or the month so they overwrite automatically (i.e. 'postgresql-%a' or 'postgresql-%d'). This also helps with log analysis.

see log_filename documentation

Examples: "postgres"
log_hostname string

Logs the host name in the connection logs.

As this setting requires resolution of each connecting hostname, it's pretty much always too expensive to have on, even when troubleshooting.

see log_hostname documentation

Examples: "off"
log_line_prefix string

Controls information prefixed to each log line.

Primarily useful for providing extra information when logging to syslog or eventlog. Try "%h:%d:%u:%c %t" for this.

see log_line_prefix documentation

Examples: "%m [%p]"
log_lock_waits string

Logs long lock waits.

Useful for performance analysis.

see log_lock_waits documentation

Examples: "off"
log_min_duration_sample string

Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate.

Minimum: -1

Maximum: 2147483647

see log_min_duration_sample documentation

Examples: "-1"
log_min_duration_statement string

Sets the minimum execution time above which all statements will be logged.

Minimum: -1

Maximum: 2147483647

Possibly the most generally useful log setting for troubleshooting performance, especially on a production server. Records only long-running queries for analysis; since these are often your "problem" queries, these are the most useful ones to know about. Used for pg_fouine.

see log_min_duration_statement documentation

Examples: "-1"
log_min_error_statement string

Causes all statements generating error at or above this level to be logged.

Logs SQL statements which error. If you have an application which routinely generates errors and can't fix it, then raise the level to FATAL or PANIC.

see log_min_error_statement documentation

Values: "debug5" "debug4" "debug3" "debug2" "debug1" "info" "notice" "warning" "error" "log" "fatal" "panic"
Examples: "error"
log_min_messages string

Sets the message levels that are logged.

Unless doing serious troubleshooting. If you want to output parses and plans, set to DEBUG1.

see log_min_messages documentation

Values: "debug5" "debug4" "debug3" "debug2" "debug1" "info" "notice" "warning" "error" "log" "fatal" "panic"
Examples: "warning"
log_parameter_max_length string

When logging statements, limit logged parameter values to first N bytes.

Minimum: -1

Maximum: 1073741823

see log_parameter_max_length documentation

Examples: "-1"
log_parameter_max_length_on_error string

When reporting an error, limit logged parameter values to first N bytes.

Minimum: -1

Maximum: 1073741823

see log_parameter_max_length_on_error documentation

Examples: "0"
log_parser_stats string

Writes parser performance statistics to the server log.

Used for profiling the query parser.

see log_parser_stats documentation

Examples: "off"
log_planner_stats string

Writes planner performance statistics to the server log.

Used for profiling the query planner.

see log_planner_stats documentation

Examples: "off"
log_recovery_conflict_waits string

Logs standby recovery conflict waits.

see log_recovery_conflict_waits documentation

Examples: "off"
log_replication_commands string

Logs each replication command.

... assuming you're monitoring replication status, which you should.

see log_replication_commands documentation

Examples: "off"
log_rotation_age string

Automatic log file rotation will occur after N minutes.

Minimum: 0

Maximum: 35791394

1d is generally good for production. Set to 1h to rotate logs hourly when doing performance analysis.

see log_rotation_age documentation

Examples: "0"
log_rotation_size string

Automatic log file rotation will occur after N kilobytes.

Minimum: 0

Maximum: 2097151

Default is quite small if you have any extra logging turned on at all. Increase to avoid the creation of additional log segments with hard-to-predict names.

see log_rotation_size documentation

Examples: "0"
log_statement string

Sets the type of statements logged.

For exhaustive performance analysis on test systems, set to 'all'. Most production setups will just want to use 'ddl' to make sure to record database-altering actions, but very secure setups may want to use 'mod' or even 'all'. Can produce a lot of log volume.

see log_statement documentation

Values: "none" "ddl" "mod" "all"
Examples: "none"
log_statement_sample_rate string

Fraction of statements exceeding log_min_duration_sample to be logged.

Minimum: 0

Maximum: 1

see log_statement_sample_rate documentation

Examples: "1"
log_statement_stats string

Writes cumulative performance statistics to the server log.

Used for full query path profiling. Exclusive of the other three options.

see log_statement_stats documentation

Examples: "off"
log_temp_files string

Log the use of temporary files larger than this number of kilobytes.

Minimum: -1

Maximum: 2147483647

This logger is used for troubleshooting sorts and other activities which are spilling to disk. If you use it at all, it's probably good to set it a something low like 1kB so that you know each query that spilled to disk, since any disk spill at all causes a dramatic slowdown in the query. Can be used to see if you need more work_mem, temp_mem or maintenance_work_mem.

see log_temp_files documentation

Examples: "-1"
log_timezone string

Sets the time zone to use in log messages.

To avoid confusion, it's often useful to log to the timezone where the DBA or sysadmin lives.

see log_timezone documentation

Examples: "Etc/UTC"
log_transaction_sample_rate string

Sets the fraction of transactions from which to log all statements.

Minimum: 0

Maximum: 1

see log_transaction_sample_rate documentation

Examples: "0"
log_truncate_on_rotation string

Truncate existing log files of same name during log rotation.

Set to "on" for production with a reusable logfile name to limit log accumulation if you don't have a sysadmin script to do so.

see log_truncate_on_rotation documentation

Examples: "off"
logging_collector string

Start a subprocess to capture stderr output and/or csvlogs into log files.

Only relevant for "csvlog" and "stderr".

see logging_collector documentation

Examples: "on"
logical_decoding_work_mem string

Sets the maximum memory to be used for logical decoding.

Minimum: 64

Maximum: 2147483647

see logical_decoding_work_mem documentation

Examples: "65536"
maintenance_io_concurrency string

A variant of effective_io_concurrency that is used for maintenance work.

Minimum: 0

Maximum: 1000

see maintenance_io_concurrency documentation

Examples: "10"
maintenance_work_mem string

Sets the maximum memory to be used for maintenance operations.

Minimum: 1024

Maximum: 2147483647

Sets the limit for the amount that autovacuum, manual vacuum, bulk index build and other maintenance routines are permitted to use. Setting it to a moderately high value will increase the efficiency of vacuum and other operations. Applications which perform large ETL operations may need to allocate up to 1/4 of RAM to support large bulk vacuums. Note that each autovacuum worker may use this much, so if using multiple autovacuum workers you may want to decrease this value so that they can't claim over 1/8 or 1/4 of available RAM.

see maintenance_work_mem documentation

Examples: "65536"
max_connections string

Sets the maximum number of concurrent connections.

Minimum: 1

Maximum: 262143

Should be set to the maximum number of connections which you expect to need at peak load. Note that each connection uses shared_buffer memory, as well as additional non-shared memory, so be careful not to run the system out of memory. In general, if you need more than 200 connections, you should probably be making more use of connection pooling.

see max_connections documentation

Examples: "100"
max_files_per_process string

Sets the maximum number of simultaneously open files for each server process.

Minimum: 64

Maximum: 2147483647

If you have a large database with many partitioned tables, you may want to increase this. Note that you will probably have to increase ulimits for the postgres user or system as well.

see max_files_per_process documentation

Examples: "1000"
max_function_args string

Shows the maximum number of function arguments.

Minimum: 100

Maximum: 100

Informational: lets you know of non-standard installation or compile options.

see max_function_args documentation

Examples: "100"
max_identifier_length string

Shows the maximum identifier length.

Minimum: 63

Maximum: 63

Informational: lets you know of non-standard installation or compile options.

see max_identifier_length documentation

Examples: "63"
max_index_keys string

Shows the maximum number of index keys.

Minimum: 32

Maximum: 32

Informational: lets you know of non-standard installation or compile options.

see max_index_keys documentation

Examples: "32"
max_locks_per_transaction string

Sets the maximum number of locks per transaction.

Minimum: 10

Maximum: 2147483647

Some databases with very complex schema or with many long-running tranactions need a higher amount. This is rare though.

see max_locks_per_transaction documentation

Examples: "64"
max_logical_replication_workers string

Maximum number of logical replication worker processes.

Minimum: 0

Maximum: 262143

... unless logical replication is falling behind and the replica isn't handling other traffic

see max_logical_replication_workers documentation

Examples: "4"
max_parallel_maintenance_workers string

Sets the maximum number of parallel processes per maintenance operation.

Minimum: 0

Maximum: 1024

see max_parallel_maintenance_workers documentation

Examples: "2"
max_parallel_workers string

Sets the maximum number of parallel workers that can be active at one time.

Minimum: 0

Maximum: 1024

... if you think you can benefit from parallel query, and even cores/1 for DW systems.

see max_parallel_workers documentation

Examples: "32"
max_parallel_workers_per_gather string

Sets the maximum number of parallel processes per executor node.

Minimum: 0

Maximum: 1024

Increase if you plan to use parallel query to 4 or 8, depending on cores/concurrent sessions.

see max_parallel_workers_per_gather documentation

Examples: "2"
max_pred_locks_per_page string

Sets the maximum number of predicate-locked tuples per page.

Minimum: 0

Maximum: 2147483647

see max_pred_locks_per_page documentation

Examples: "2"
max_pred_locks_per_relation string

Sets the maximum number of predicate-locked pages and tuples per relation.

Minimum: -2147483648

Maximum: 2147483647

see max_pred_locks_per_relation documentation

Examples: "-2"
max_pred_locks_per_transaction string

Sets the maximum number of predicate locks per transaction.

Minimum: 10

Maximum: 2147483647

Raise if you have a lot of tables and are seeing some transactions fail, but modestly as a larger transaction table is expensive.

see max_pred_locks_per_transaction documentation

Examples: "64"
max_prepared_transactions string

Sets the maximum number of simultaneously prepared transactions.

Minimum: 0

Maximum: 262143

Most applications do not use XA prepared transactions, so should set this parameter to 0. If you do require prepared transactions, you should set this equal to max_connections to avoid blocking. May require increasing kernel memory parameters.

see max_prepared_transactions documentation

Examples: "0"
max_replication_slots string

Sets the maximum number of simultaneously defined replication slots.

Minimum: 0

Maximum: 262143

Set to twice as many replicas as you ever expect to have.

see max_replication_slots documentation

Examples: "32"
max_slot_wal_keep_size string

Sets the maximum WAL size that can be reserved by replication slots.

Minimum: -1

Maximum: 2147483647

see max_slot_wal_keep_size documentation

Examples: "-1"
max_stack_depth string

Sets the maximum stack depth, in kilobytes.

Minimum: 100

Maximum: 2147483647

Increase this if you have experienced the relevant error.

see max_stack_depth documentation

Examples: "2048"
max_standby_archive_delay string

Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data.

Minimum: -1

Maximum: 2147483647

If you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible. If this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.

see max_standby_archive_delay documentation

Examples: "30000"
max_standby_streaming_delay string

Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data.

Minimum: -1

Maximum: 2147483647

If you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible. If this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.

see max_standby_streaming_delay documentation

Examples: "30000"
max_sync_workers_per_subscription string

Maximum number of table synchronization workers per subscription.

Minimum: 0

Maximum: 262143

Consider raising to cores/2 when initially synchronizing logical replication for a new replica.

see max_sync_workers_per_subscription documentation

Examples: "2"
max_wal_senders string

Sets the maximum number of simultaneously running WAL sender processes.

Minimum: 0

Maximum: 262143

If you are replicating, you want to set this to the maximum number of standby servers you might possibly have. Performance impact when set above zero, but no additional penalty for setting it higher.

see max_wal_senders documentation

Examples: "10"
max_wal_size string

Sets the WAL size that triggers a checkpoint.

Minimum: 2

Maximum: 2147483647

... except for databases that write more than 1GB/hour of data, in which case increase the size of the log so that it's at least an hour worth of logs

see max_wal_size documentation

Examples: "1024"
max_worker_processes string

Maximum number of concurrent worker processes.

Minimum: 0

Maximum: 262143

Increase to max_parallel_workers + other workers, such as workers for logical replication and custom background workers. Not more than your number of cores, though.

see max_worker_processes documentation

Examples: "32"
min_dynamic_shared_memory string

Amount of dynamic shared memory reserved at startup.

Minimum: 0

Maximum: 2147483647

see min_dynamic_shared_memory documentation

Examples: "0"
min_parallel_index_scan_size string

Sets the minimum amount of index data for a parallel scan.

Minimum: 0

Maximum: 715827882

see min_parallel_index_scan_size documentation

Examples: "64"
min_parallel_table_scan_size string

Sets the minimum amount of table data for a parallel scan.

Minimum: 0

Maximum: 715827882

... , unless doing IoT or a read-only database. Raise to 100MB or so if your traffic on the database is very bursty, to prevent the WAL from shrinking too much.

see min_parallel_table_scan_size documentation

Examples: "1024"
min_wal_size string

Sets the minimum size to shrink the WAL to.

Minimum: 2

Maximum: 2147483647

see min_wal_size documentation

Examples: "80"
old_snapshot_threshold string

Time before a snapshot is too old to read pages changed after the snapshot was taken.

Minimum: -1

Maximum: 86400

... or the length of the longest transaction you expect to run + 1 hour.

see old_snapshot_threshold documentation

Examples: "-1"
parallel_leader_participation string

Controls whether Gather and Gather Merge also run subplans.

see parallel_leader_participation documentation

Examples: "on"
parallel_setup_cost string

Sets the planner's estimate of the cost of starting up worker processes for parallel query.

Minimum: 0

Maximum: 1.79769e+308

see parallel_setup_cost documentation

Examples: "1000"
parallel_tuple_cost string

Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend.

Minimum: 0

Maximum: 1.79769e+308

see parallel_tuple_cost documentation

Examples: "0.1"
password_encryption string

Chooses the algorithm for encrypting passwords.

There is no good reason for this to be set to "off".

see password_encryption documentation

Values: "md5" "scram-sha-256"
Examples: "scram-sha-256"
pg_stat_statements.max string

Sets the maximum number of statements tracked by pg_stat_statements.

Minimum: 100

Maximum: 1073741823

see pg_stat_statements.max documentation

Examples: "10000"
pg_stat_statements.save string

Save pg_stat_statements statistics across server shutdowns.

see pg_stat_statements.save documentation

Examples: "on"
pg_stat_statements.track string

Selects which statements are tracked by pg_stat_statements.

see pg_stat_statements.track documentation

Values: "none" "top" "all"
Examples: "all"
pg_stat_statements.track_planning string

Selects whether planning duration is tracked by pg_stat_statements.

see pg_stat_statements.track_planning documentation

Examples: "off"
pg_stat_statements.track_utility string

Selects whether utility commands are tracked by pg_stat_statements.

see pg_stat_statements.track_utility documentation

Examples: "on"
plan_cache_mode string

Controls the planner's selection of custom or generic plan.

see plan_cache_mode documentation

Values: "auto" "force_generic_plan" "force_custom_plan"
Examples: "auto"
port string

Sets the TCP port the server listens on.

Minimum: 1

Maximum: 65535

Alternate ports are primarily useful for running several versions, or instances, of PostgreSQL on one machine. However, if you're using an alternate port to support several versions, it's often better to compile in the port number.

see port documentation

Examples: "5432"
post_auth_delay string

Waits N seconds on connection startup after authentication.

Minimum: 0

Maximum: 2147

Primarily used for attaching debuggers to sessions.

see post_auth_delay documentation

Examples: "0"
pre_auth_delay string

Waits N seconds on connection startup before authentication.

Minimum: 0

Maximum: 60

Primarily used for attaching debuggers to sessions.

see pre_auth_delay documentation

Examples: "0"
primary_conninfo string

Sets the connection string to be used to connect to the sending server.

see primary_conninfo documentation

Examples: "host=pg-rw user=streaming_replica port=5432 sslkey=/controller/certificates/streaming_replica.key sslcert=/controller/certificates/streaming_replica.crt sslrootcert=/controller/certificates/server-ca.crt application_name=pg-2 sslmode=verify-ca"
primary_slot_name string

Sets the name of the replication slot to use on the sending server.

see primary_slot_name documentation

promote_trigger_file string

Specifies a file name whose presence ends recovery in the standby.

see promote_trigger_file documentation

quote_all_identifiers string

When generating SQL fragments, quote all identifiers.

see quote_all_identifiers documentation

Examples: "off"
random_page_cost string

Sets the planner's estimate of the cost of a nonsequentially fetched disk page.

Minimum: 0

Maximum: 1.79769e+308

Sets the ratio of seek to scan time for your database storage. Should not be altered unless you're using special storage (SSDs, high end SANs, etc.) where seek/scan ratios are actually different. If you need the database to favor indexes more, tune effective_cache_size and some of the cpu_* costs instead.

see random_page_cost documentation

Examples: "4"
recovery_end_command string

Sets the shell command that will be executed once at the end of recovery.

see recovery_end_command documentation

recovery_init_sync_method string

Sets the method for synchronizing the data directory before crash recovery.

see recovery_init_sync_method documentation

Values: "fsync" "syncfs"
Examples: "fsync"
recovery_min_apply_delay string

Sets the minimum delay for applying changes during recovery.

Minimum: 0

Maximum: 2147483647

see recovery_min_apply_delay documentation

Examples: "0"
recovery_target string

Set to "immediate" to end recovery as soon as a consistent state is reached.

see recovery_target documentation

recovery_target_action string

Sets the action to perform upon reaching the recovery target.

see recovery_target_action documentation

Values: "pause" "promote" "shutdown"
Examples: "pause"
recovery_target_inclusive string

Sets whether to include or exclude transaction with recovery target.

see recovery_target_inclusive documentation

Examples: "on"
recovery_target_lsn string

Sets the LSN of the write-ahead log location up to which recovery will proceed.

see recovery_target_lsn documentation

recovery_target_name string

Sets the named restore point up to which recovery will proceed.

see recovery_target_name documentation

recovery_target_time string

Sets the time stamp up to which recovery will proceed.

see recovery_target_time documentation

recovery_target_timeline string

Specifies the timeline to recover into.

see recovery_target_timeline documentation

Examples: "latest"
recovery_target_xid string

Sets the transaction ID up to which recovery will proceed.

see recovery_target_xid documentation

remove_temp_files_after_crash string

Remove temporary files after backend crash.

see remove_temp_files_after_crash documentation

Examples: "on"
restart_after_crash string

Reinitialize server after backend crash.

... unless deliberately running postgres in "ephemral" mode

see restart_after_crash documentation

Examples: "off"
restore_command string

Sets the shell command that will be called to retrieve an archived WAL file.

see restore_command documentation

Examples: "/controller/manager wal-restore --log-destination /controller/log/postgres.json %f %p"
row_security string

Enable row security.

... except when testing row security policies.

see row_security documentation

Examples: "on"
search_path string

Sets the schema search order for names that are not schema-qualified.

Most DBAs either use the default or set search_path on a ROLE or database object basis. The one reason to set it in postgresql.conf is if you are taking the security step of removing the special "public" schema in order to lock down your database.

see search_path documentation

Examples: ""$user", public"
segment_size string

Shows the number of pages per disk file.

Minimum: 131072

Maximum: 131072

Informational: lets you know of non-standard installation or compile options.

see segment_size documentation

Examples: "131072"
seq_page_cost string

Sets the planner's estimate of the cost of a sequentially fetched disk page.

Minimum: 0

Maximum: 1.79769e+308

The main reason to modify seq_page_cost is to try to get planner costs to more-or-less indicate execution times in milleseconds. All other costs change relative to this cost automatically.

see seq_page_cost documentation

Examples: "1"
server_encoding string

Shows the server (database) character set encoding.

Set at initdb time. Displayed for information only.

see server_encoding documentation

Examples: "UTF8"
server_version string

Shows the server version.

Informational: lets you know of non-standard installation or compile options.

see server_version documentation

Examples: "14.9 (Debian 14.9-1.pgdg110+1)"
server_version_num string

Shows the server version as an integer.

Minimum: 140009

Maximum: 140009

Informational: lets you know of non-standard installation or compile options.

see server_version_num documentation

Examples: "140009"
session_preload_libraries string

Lists shared libraries to preload into each backend.

Special uses for debugging or for loading application-specific extensions.

see session_preload_libraries documentation

session_replication_role string

Sets the session's behavior for triggers and rewrite rules.

Only gets changed for databases which are taking part in a replication chain. In that case, "origin" servers fire replication (and other) triggers, and "replica" do not. Part of the generic replication hooks which are used by Slony and Bucardo.

see session_replication_role documentation

Values: "origin" "replica" "local"
Examples: "origin"
shared_buffers string

Sets the number of shared memory buffers used by the server.

Minimum: 16

Maximum: 1073741823

A memory quantity defining PostgreSQL's "dedicated" RAM, which is used for connection control, active operations, and more. However, since PostgreSQL also needs free RAM for file system buffers, sorts and maintenance operations, it is not advisable to set shared_buffers to a majority of RAM. Note that increasing shared_buffers often requires you to increase some system kernel parameters, most notably SHMMAX and SHMALL. See Operating System Environment: Managing Kernel Resources in the PostgreSQL documentation for more details. Also note that shared_buffers over 2GB is only supported on 64-bit systems.

see shared_buffers documentation

Examples: "16384"
shared_memory_type string

Selects the shared memory implementation used for the main shared memory region.

see shared_memory_type documentation

Values: "sysv" "mmap"
Examples: "mmap"
shared_preload_libraries string

Lists shared libraries to preload into server.

Primarily used for custom C libraries (data types, stored procedures) which you expect your application to use heavily. Trades memory overhead for these libraries against load time, so really should only be used for libraries you expect most queries to require.

see shared_preload_libraries documentation

Examples: "pg_stat_statements"
ssl string

Enables SSL connections.

One of several different settings to turn on SSL connections for PostgreSQL. SSL is a very good idea for highly secure setups. In addition, you must compile in SSL support and set SSL connections in pg_hba.conf, as well as configuring SSL itself.

see ssl documentation

Examples: "on"
ssl_ca_file string

Location of the SSL certificate authority file.

You should always use SSL connections if you can. However, this does require setting up SSL.

see ssl_ca_file documentation

Examples: "/controller/certificates/client-ca.crt"
ssl_cert_file string

Location of the SSL server certificate file.

According to your SSL configuration, which maybe provided by your installer.

see ssl_cert_file documentation

Examples: "/controller/certificates/server.crt"
ssl_ciphers string

Sets the list of allowed SSL ciphers.

Allows DBAs to require "str" enough or preset ciphers for SSL connections. If you have not compiled SSL support, this parameter will not be available.

see ssl_ciphers documentation

Examples: "HIGH:MEDIUM:+3DES:!aNULL"
ssl_crl_dir string

Location of the SSL certificate revocation list directory.

see ssl_crl_dir documentation

ssl_crl_file string

Location of the SSL certificate revocation list file.

According to your SSL configuration, which maybe provided by your installer.

see ssl_crl_file documentation

ssl_dh_params_file string

Location of the SSL DH parameters file.

According to your SSL configuration, which maybe provided by your installer.

see ssl_dh_params_file documentation

ssl_ecdh_curve string

Sets the curve to use for ECDH.

According to your SSL configuration, which maybe provided by your installer.

see ssl_ecdh_curve documentation

Examples: "prime256v1"
ssl_key_file string

Location of the SSL server private key file.

According to your SSL configuration, which maybe provided by your installer.

see ssl_key_file documentation

Examples: "/controller/certificates/server.key"
ssl_library string

Shows the name of the SSL library.

see ssl_library documentation

Examples: "OpenSSL"
ssl_max_protocol_version string

Sets the maximum SSL/TLS protocol version to use.

see ssl_max_protocol_version documentation

Values: """" "TLSv1" "TLSv1.1" "TLSv1.2" "TLSv1.3"
ssl_min_protocol_version string

Sets the minimum SSL/TLS protocol version to use.

see ssl_min_protocol_version documentation

Values: "TLSv1" "TLSv1.1" "TLSv1.2" "TLSv1.3"
Examples: "TLSv1.2"
ssl_passphrase_command string

Command to obtain passphrases for SSL.

see ssl_passphrase_command documentation

ssl_passphrase_command_supports_reload string

Also use ssl_passphrase_command during server reload.

see ssl_passphrase_command_supports_reload documentation

Examples: "off"
ssl_prefer_server_ciphers string

Give priority to server ciphersuite order.

According to your SSL configuration, which maybe provided by your installer.

see ssl_prefer_server_ciphers documentation

Examples: "on"
standard_conforming_strings string

Causes '...' strings to treat backslashes literally.

If you can clean up your application code, this disables use of as an escape character except in escaped (E' ') strings. This is both safer, and less likely to result in unexpected output for things like Windows filepaths.

see standard_conforming_strings documentation

Examples: "on"
statement_timeout string

Sets the maximum allowed duration of any statement.

Minimum: 0

Maximum: 2147483647

Defaults to 0, meaning no timeout. For most web applications, it's a good idea to set a default timeout, such as 60s to prevent runaway queries from bogging the server. If set, though, you need to remember to set (at the ROLE or session level) a higher statement_timeout for expected long-running maintenance or batch operations.

see statement_timeout documentation

Examples: "0"
stats_temp_directory string

Writes temporary statistics files to the specified directory.

Useful for extremely high-volume databases; the stats temp directory could be set to a RAMdisk or other high-speed resource (at the cost of potentially losing some stats) as this file gets updated hundreds of times per second.

see stats_temp_directory documentation

Examples: "pg_stat_tmp"
superuser_reserved_connections string

Sets the number of connection slots reserved for superusers.

Minimum: 0

Maximum: 262143

You should have at least one superuser connection open for troubleshooting at all times. So if you run more than two concurrent regular administrative tasks, you'll need more reserved connections. Note that this number is taken from max_connections, not in addition to it.

see superuser_reserved_connections documentation

Examples: "3"
synchronize_seqscans string

Enable synchronized sequential scans.

This new peformance enhancment can also cause rows to be returned in an order other than physical storage order. For poorly-written older applications, this may break application code; turn it off to disable.

see synchronize_seqscans documentation

Examples: "on"
synchronous_commit string

Sets the current transaction's synchronization level.

If data integrity is less important to you than response times (for example, if you are running a social networking application or processing logs) you can turn this off, making your transaction logs asynchronous. This can result in up to wal_buffers or wal_writer_delay * 2 worth of data in an unexpected shutdown, but your database will not be corrupted. Note that you can also set this on a per-session basis, allowing you to mix "lossy" and "safe" transactions, which is a better approach for most applications.

see synchronous_commit documentation

Values: "local" "remote_write" "remote_apply" "on" "off"
Examples: "on"
synchronous_standby_names string

Number of synchronous standbys and list of names of potential synchronous ones.

Special, see syntax for sync standby config. Don't get into this if you're not sure what you're doing.

see synchronous_standby_names documentation

Examples: "ANY 1 ("pg-1","pg-3")"
syslog_facility string

Sets the syslog "facility" to be used when syslog enabled.

Change the logserver facility if you are having a conflict with other applications.

see syslog_facility documentation

Values: "local0" "local1" "local2" "local3" "local4" "local5" "local6" "local7"
Examples: "local0"
syslog_ident string

Sets the program name used to identify PostgreSQL messages in syslog.

If using a centralized logserver or if you have multiple Postgres instances, you probably want to identify your postgresql instance by hostname.

see syslog_ident documentation

Examples: "postgres"
syslog_sequence_numbers string

Add sequence number to syslog messages to avoid duplicate suppression.

see syslog_sequence_numbers documentation

Examples: "on"
syslog_split_messages string

Split messages sent to syslog by lines and to fit into 1024 bytes.

see syslog_split_messages documentation

Examples: "on"
tcp_keepalives_count string

Maximum number of TCP keepalive retransmits.

Minimum: 0

Maximum: 2147483647

The three tcp_keepalive settings help manage a system which tends to have "undead" connection/query processes. For systems which support them, you can regulate checking that connections are still "live" end-to-end to kill them off. Not needed if you're not having a problem. Should be synchronized with the new TCP keepalive support in libpq on the client side.

see tcp_keepalives_count documentation

Examples: "0"
tcp_keepalives_idle string

Time between issuing TCP keepalives.

Minimum: 0

Maximum: 2147483647

see tcp_keepalives_idle documentation

Examples: "0"
tcp_keepalives_interval string

Time between TCP keepalive retransmits.

Minimum: 0

Maximum: 2147483647

see tcp_keepalives_interval documentation

Examples: "0"
tcp_user_timeout string

TCP user timeout.

Minimum: 0

Maximum: 2147483647

see tcp_user_timeout documentation

Examples: "0"
temp_buffers string

Sets the maximum number of temporary buffers used by each session.

Minimum: 100

Maximum: 1073741823

Currently used only for holding temporary tables in memory. If your application requires heavy use of temporary tables (many proprietary reporting engines do) then you might want to increase this substantially. However, be careful because this is non-shared RAM which is allocated per session. Otherwise, the default is fine.

see temp_buffers documentation

Examples: "1024"
temp_file_limit string

Limits the total size of all temporary files used by each process.

Minimum: -1

Maximum: 2147483647

... or something which is bigger than your largest possible sort, but not big enough to run you out of disk space.

see temp_file_limit documentation

Examples: "-1"
temp_tablespaces string

Sets the tablespace(s) to use for temporary tables and sort files.

For applications which create lots of temporary objects, this setting can be used to put the temp space on a faster/separate device, or even a ramdisk. Because it accepts a list, it can even be used to load balance temp object creation among several tablespaces.

see temp_tablespaces documentation

TimeZone string

Sets the time zone for displaying and interpreting time stamps.

To avoid a lot of confusion, make sure this is set to your local timeszone. If the server covers multiple time zones, then this should be set on a ROLE or connection basis.

see TimeZone documentation

Examples: "Europe/Paris"
timezone_abbreviations string

Selects a file of time zone abbreviations.

See appendencies for alternatives.

see timezone_abbreviations documentation

Examples: "Default"
trace_notify string

Generates debugging output for LISTEN and NOTIFY.

The various TRACE options are for debugging specific behaviors interactively. Many of them require compile-time options. trace_notice is for debugging listen/notice.

see trace_notify documentation

Examples: "off"
trace_recovery_messages string

Enables logging of recovery-related debugging information.

For troubleshooting replication/PITR failures.

see trace_recovery_messages documentation

Values: "debug5" "debug4" "debug3" "debug2" "debug1" "log" "notice" "warning" "error"
Examples: "log"
trace_sort string

Emit information about resource usage in sorting.

For debugging sorts.

see trace_sort documentation

Examples: "off"
track_activities string

Collects information about executing commands.

see track_activities documentation

Examples: "on"
track_activity_query_size string

Sets the size reserved for pg_stat_activity.query, in bytes.

Minimum: 100

Maximum: 1048576

Sets the truncation threshold of queries in pg_stat_activity (and pg_stat_statements). Increase it if you have really long queries which are being cut off, but there is significant extra memory usage for keeping longer queries.

see track_activity_query_size documentation

Examples: "1024"
track_commit_timestamp string

Collects transaction commit time.

see track_commit_timestamp documentation

Examples: "off"
track_counts string

Collects statistics on database activity.

Needed for autovacuum to work properly. Do not turn off.

see track_counts documentation

Examples: "on"
track_functions string

Collects function-level statistics on database activity.

Set it to 'pl' to collect stats on user-defined functions. Very useful for stored procedure performance profiling and troubleshooting.

see track_functions documentation

Values: "none" "pl" "all"
Examples: "none"
track_io_timing string

Collects timing statistics for database I/O activity.

Turn it on if you're monitoring disk usage per request.

see track_io_timing documentation

Examples: "off"
track_wal_io_timing string

Collects timing statistics for WAL I/O activity.

see track_wal_io_timing documentation

Examples: "off"
transaction_deferrable string

Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures.

see transaction_deferrable documentation

Examples: "off"
transaction_isolation string

Sets the current transaction's isolation level.

Set per session if you need, for example, SERIALIZABLE semantics to prevent data conflicts for multi-step transactions.

see transaction_isolation documentation

Values: "serializable" ""repeatable read"" ""read committed"" ""read uncommitted""
Examples: "read committed"
transaction_read_only string

Sets the current transaction's read-only status.

Sets the current transaction to read only. Useful as part of a SQL injection prevention program. Shows as TRUE on replication standbys.

see transaction_read_only documentation

Examples: "off"
transform_null_equals string

Treats "expr=NULL" as "expr IS NULL".

Provided for compatibility with Microsoft Access and similar broken applications which treat "= NULL" as the same as "IS NULL".

see transform_null_equals documentation

Examples: "off"
unix_socket_directories string

Sets the directories where Unix-domain sockets will be created.

Change to a more secure directory, which many installers do for you.

see unix_socket_directories documentation

Examples: "/controller/run"
unix_socket_group string

Sets the owning group of the Unix-domain socket.

see unix_socket_group documentation

unix_socket_permissions string

Sets the access permissions of the Unix-domain socket.

Minimum: 0

Maximum: 511

see unix_socket_permissions documentation

Examples: "0777"
update_process_title string

Updates the process title to show the active SQL command.

Updates the process title on OSes which support this. Very useful for checking resource usage by currently running queries.

see update_process_title documentation

Examples: "on"
vacuum_cost_delay string

Vacuum cost delay in milliseconds.

Minimum: 0

Maximum: 100

Most of the time, you will want manual vacuum to execute without vacuum_delay, especially if you're using it as part of ETL. If for some reason you can't use autovacuum on an OLTP database, however, you may want to increase this to 20ms to decrease the impact vacuum has on currently running queries. Will cause vacuum to take up to twice as long to complete.

see vacuum_cost_delay documentation

Examples: "0"
vacuum_cost_limit string

Vacuum cost amount available before napping.

Minimum: 1

Maximum: 10000

see vacuum_cost_limit documentation

Examples: "200"
vacuum_cost_page_dirty string

Vacuum cost for a page dirtied by vacuum.

Minimum: 0

Maximum: 10000

see vacuum_cost_page_dirty documentation

Examples: "20"
vacuum_cost_page_hit string

Vacuum cost for a page found in the buffer cache.

Minimum: 0

Maximum: 10000

see vacuum_cost_page_hit documentation

Examples: "1"
vacuum_cost_page_miss string

Vacuum cost for a page not found in the buffer cache.

Minimum: 0

Maximum: 10000

see vacuum_cost_page_miss documentation

Examples: "2"
vacuum_defer_cleanup_age string

Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.

Minimum: 0

Maximum: 1000000

No longer effective thanks to hot_standby_feedback.

see vacuum_defer_cleanup_age documentation

Examples: "0"
vacuum_failsafe_age string

Age at which VACUUM should trigger failsafe to avoid a wraparound outage.

Minimum: 0

Maximum: 2100000000

see vacuum_failsafe_age documentation

Examples: "1600000000"
vacuum_freeze_min_age string

Minimum age at which VACUUM should freeze a table row.

Minimum: 0

Maximum: 1000000000

Most users will want to decrease this so that rows which have been cold for a long time get frozen earlier, and avoid an autovacuum_freeze. The suggestion of 500000 is for a moderately busy database; do not set to less than a few hours worth of XIDs. Maximum setting is 1/2 of autovaccuum_max_freeze_age.

see vacuum_freeze_min_age documentation

Examples: "50000000"
vacuum_freeze_table_age string

Age at which VACUUM should scan whole table to freeze tuples.

Minimum: 0

Maximum: 2000000000

Generally set to 80% of autovacuum_max_freeze age to preempt a full vacuum freeze. If you can schedule cron vacuums during application slow periods, it might be valuable to lower this value in order to encourage vacuum freezing of tables before they are triggered by autovacuum.

see vacuum_freeze_table_age documentation

Examples: "150000000"
vacuum_multixact_failsafe_age string

Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage.

Minimum: 0

Maximum: 2100000000

see vacuum_multixact_failsafe_age documentation

Examples: "1600000000"
vacuum_multixact_freeze_min_age string

Minimum age at which VACUUM should freeze a MultiXactId in a table row.

Minimum: 0

Maximum: 1000000000

Like freeze_min_age, lower this to somewhere around an hour of XID burn. Try starting with 500000.

see vacuum_multixact_freeze_min_age documentation

Examples: "5000000"
vacuum_multixact_freeze_table_age string

Multixact age at which VACUUM should scan whole table to freeze tuples.

Minimum: 0

Maximum: 2000000000

Set to 80% of autovaccum_multixact_freeze_max_age

see vacuum_multixact_freeze_table_age documentation

Examples: "150000000"
wal_block_size string

Shows the block size in the write ahead log.

Minimum: 8192

Maximum: 8192

Informational: lets you know of non-standard installation or compile options.

see wal_block_size documentation

Examples: "8192"
wal_buffers string

Sets the number of disk-page buffers in shared memory for WAL.

Minimum: -1

Maximum: 262143

On very busy, high-core machines it can be useful to raise this to as much as 128MB.

see wal_buffers documentation

Examples: "512"
wal_compression string

Compresses full-page writes written in WAL file.

... unless your storage is less constrained than your CPU.

see wal_compression documentation

Examples: "off"
wal_consistency_checking string

Sets the WAL resource managers for which WAL consistency checks are done.

see wal_consistency_checking documentation

wal_init_zero string

Writes zeroes to new WAL files before first use.

see wal_init_zero documentation

Examples: "on"
wal_keep_size string

Sets the size of WAL files held for standby servers.

Minimum: 0

Maximum: 2147483647

see wal_keep_size documentation

Examples: "512"
wal_level string

Sets the level of information written to the WAL.

Level replica is required for binary replication, and level logical is required for logical replication. This is a setting because raising the level adds more writes to the WAL, so if you're not doing replication or archiving at all, set it to minimal.

see wal_level documentation

Values: "minimal" "replica" "logical"
Examples: "logical"
wal_log_hints string

Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification.

see wal_log_hints documentation

Examples: "on"
wal_receiver_create_temp_slot string

Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured.

see wal_receiver_create_temp_slot documentation

Examples: "off"
wal_receiver_status_interval string

Sets the maximum interval between WAL receiver status reports to the sending server.

Minimum: 0

Maximum: 2147483

see wal_receiver_status_interval documentation

Examples: "10"
wal_receiver_timeout string

Sets the maximum wait time to receive data from the sending server.

Minimum: 0

Maximum: 2147483647

see wal_receiver_timeout documentation

Examples: "5000"
wal_recycle string

Recycles WAL files by renaming them.

see wal_recycle documentation

Examples: "on"
wal_retrieve_retry_interval string

Sets the time to wait before retrying to retrieve WAL after a failed attempt.

Minimum: 1

Maximum: 2147483647

see wal_retrieve_retry_interval documentation

Examples: "5000"
wal_segment_size string

Shows the size of write ahead log segments.

Minimum: 1048576

Maximum: 1073741824

Informational: lets you know of non-standard installation or compile options.

see wal_segment_size documentation

Examples: "16777216"
wal_sender_timeout string

Sets the maximum time to wait for WAL replication.

Minimum: 0

Maximum: 2147483647

see wal_sender_timeout documentation

Examples: "5000"
wal_skip_threshold string

Minimum size of new file to fsync instead of writing WAL.

Minimum: 0

Maximum: 2147483647

see wal_skip_threshold documentation

Examples: "2048"
wal_sync_method string

Selects the method used for forcing WAL updates to disk.

On install, PostgreSQL figures out the best method for your OS. It's pretty good at this point; don't change the default. Note that the value of "fsync" shown in your postgresql.conf file is not necessarily the setting the server is using; try SHOW instead.

see wal_sync_method documentation

Values: "fsync" "fdatasync" "open_sync" "open_datasync"
Examples: "fdatasync"
wal_writer_delay string

Time between WAL flushes performed in the WAL writer.

Minimum: 1

Maximum: 10000

Defines the maximum data (in time) that can be lost if synchronous_commit=off and the database shuts down. Because of long transactions, actual data lost can be up to twice this time. Has no effect if synchronous_commit=on. If you are going to turn synchronous_commit=off server-wide, you should probably lower this to prevent too much data loss.

see wal_writer_delay documentation

Examples: "200"
wal_writer_flush_after string

Amount of WAL written out by WAL writer that triggers a flush.

Minimum: 0

Maximum: 2147483647

see wal_writer_flush_after documentation

Examples: "128"
work_mem string

Sets the maximum memory to be used for query workspaces.

Minimum: 64

Maximum: 2147483647

Sets the limit for the amount of non-shared RAM available for each query operation, including sorts and hashes. This limit acts as a primitive resource control, preventing the server from going into swap due to overallocation. Note that this is non-shared RAM per operation, which means large complex queries can use multple times this amount. Also, work_mem is allocated by powers of two, so round to the nearest binary step. The second formula is for reporting and DW servers which run a lot of complex queries.

see work_mem documentation

Examples: "32768"
xmlbinary string

Sets how binary values are to be encoded in XML.

Set to whatever your client application supports.

see xmlbinary documentation

Values: "base64" "hex"
Examples: "base64"
xmloption string

Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.

see xmloption documentation

Values: "content" "document"
Examples: "content"
zero_damaged_pages string

Continues processing past damaged page headers.

Used for salvaging data from a known-bad database. You should always make a binary backup before using this option, and it should not be used while users are allowed to connect. After damaged pages are erased, other kinds of data intergrity errors may persist (like broken PKs and FKs). ZDP should generally be used to get your DB to a stage where the data can be dumped and loaded into a new database.

see zero_damaged_pages documentation

Examples: "off"