# Chapter 19. Server Setup and Operation

Table of Contents

19.1. The PostgreSQL User Account

19.2. Creating a Database Cluster

19.2.1. Use of Secondary File Systems

19.2.2. File Systems

19.3. Starting the Database Server

19.3.1. Server Start-up Failures

19.3.2. Client Connection Problems

19.4. Managing Kernel Resources

19.4.1. Shared Memory and Semaphores

19.4.2. systemd RemoveIPC

19.4.3. Resource Limits

19.4.4. Linux Memory Overcommit

19.4.5. Linux Huge Pages

19.5. Shutting Down the Server

19.6. Upgrading a PostgreSQL Cluster

19.6.1. Upgrading Data via pg_dumpall

19.6.2. Upgrading Data via pg_upgrade

19.6.3. Upgrading Data via Replication

19.7. Preventing Server Spoofing

19.8. Encryption Options

19.9. Secure TCP/IP Connections with SSL

19.9.1. Basic Setup

19.9.2. OpenSSL Configuration

19.9.3. Using Client Certificates

19.9.4. SSL Server File Usage

19.9.5. Creating Certificates

19.10. Secure TCP/IP Connections with GSSAPI Encryption

19.10.1. Basic Setup

19.11. Secure TCP/IP Connections with SSH Tunnels

19.12. Registering Event Log on Windows

This chapter discusses how to set up and run the database server, and its interactions with the operating system.

The directions in this chapter assume that you are working with plain PostgreSQL without any additional infrastructure, for example a copy that you built from source according to the directions in the preceding chapters. If you are working with a pre-packaged or vendor-supplied version of PostgreSQL, it is likely that the packager has made special provisions for installing and starting the database server according to your system's conventions. Consult the package-level documentation for details.