# Chapter 20. Server Configuration

Table of Contents

20.1. Setting Parameters

20.1.1. Parameter Names and Values

20.1.2. Parameter Interaction via the Configuration File

20.1.3. Parameter Interaction via SQL

20.1.4. Parameter Interaction via the Shell

20.1.5. Managing Configuration File Contents

20.2. File Locations

20.3. Connections and Authentication

20.3.1. Connection Settings

20.3.2. Authentication

20.3.3. SSL

20.4. Resource Consumption

20.4.1. Memory

20.4.2. Disk

20.4.3. Kernel Resource Usage

20.4.4. Cost-based Vacuum Delay

20.4.5. Background Writer

20.4.6. Asynchronous Behavior

20.5. Write Ahead Log

20.5.1. Settings

20.5.2. Checkpoints

20.5.3. Archiving

20.5.4. Archive Recovery

20.5.5. Recovery Target

20.6. Replication

20.6.1. Sending Servers

20.6.2. Primary Server

20.6.3. Standby Servers

20.6.4. Subscribers

20.7. Query Planning

20.7.1. Planner Method Configuration

20.7.2. Planner Cost Constants

20.7.3. Genetic Query Optimizer

20.7.4. Other Planner Options

20.8. Error Reporting and Logging

20.8.1. Where to Log

20.8.2. When to Log

20.8.3. What to Log

20.8.4. Using CSV-Format Log Output

20.8.5. Process Title

20.9. Run-time Statistics

20.9.1. Query and Index Statistics Collector

20.9.2. Statistics Monitoring

20.10. Automatic Vacuuming

20.11. Client Connection Defaults

20.11.1. Statement Behavior

20.11.2. Locale and Formatting

20.11.3. Shared Library Preloading

20.11.4. Other Defaults

20.12. Lock Management

20.13. Version and Platform Compatibility

20.13.1. Previous PostgreSQL Versions

20.13.2. Platform and Client Compatibility

20.14. Error Handling

20.15. Preset Options

20.16. Customized Options

20.17. Developer Options

20.18. Short Options

There are many configuration parameters that affect the behavior of the database system. In the first section of this chapter we describe how to interact with configuration parameters. The subsequent sections discuss each parameter in detail.